Hilfe: "ERR bit from an interrupt routine" - setzen?

Gast #1091802
Lesenswert?

Hallo Peter (und andere),

in der BASCOM-Hilfe steht
"The Getatkbd function will wait for a pressed key. When you want to 
escape from the waiting loop you can set the ERR bit from an interrupt 
routine for example."

Wie kann ich nun GETATKBD() verlassen ?

Josch
Gast #1091819
Lesenswert?

>Ich benötige dies, um bei BASCOM nicht in der GETATKBD()-Funktion hängen
>zu bleiben.


Am besten verwendest Du diese Funktion nicht, sondern schreibst Dir eine 
eigene, die Abbruchzeichen auswerten kann. So einfach diese Funktion für 
Dich zunächst aussehen mag, in der Praxis taugt sie nicht.

@A.K.
Das war schon immer so, nicht wahr? :-)
#1091827
Lesenswert?

Josch wrote:

> 300 Seiten Doku habe ich gelesen.

Ich nicht. Ich lasse lesen. Computer sind dabei schneller als ich.

> Aber Peter schreibt, dass es kein "ERR bit" gibt.

Peter kennt m.W. BASCOM nicht. Und der AVR Prozessor hat kein Bit mit 
dem Namen ERR, das ist eine Spezialität von BASCOM.

> Wo hast du das denn gefunden ?

Im Kühlschrank,

Herrje, in der aktuellen Version der BASCOM Doku natürlich. Nach "ERR " 
suchend.
#1092401
Lesenswert?

Josch wrote:
> "The Getatkbd function will wait for a pressed key. When you want to
> escape from the waiting loop you can set the ERR bit from an interrupt
> routine for example."

Vermutlich ist "ERR" ne globale Variable von Bascom, also einfach mal 
setzen.


Die Formulierung drängt den Verdacht auf, daß Getatkbd im Polling 
arbeitet.
Wie damit vernünftig ein Tastendruck erkannt werden soll, ist mir ein 
Rätsel.
Man muß ja dann zufällig in dieser Routine sein, wenn eine Taste 
gedrückt wird.

Sinnvoll wäre ein Interrupthandler, der Tastendrücke in einem Puffer 
speichert. Und eine Funktion, die den Status zurückliefert, daß 
mindestens ein Ereignis im Puffer ist.


Peter

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren