Forum: Mikrocontroller und Digitale Elektronik Wertebereich


von Hannes Albert (Gast)


Lesenswert?

Hallo,

ich hab ein wahrscheinlich lächerliches Problem,
Ich möchte einige ASCII- Zeichen in einer if- anweisung abfragen.

if((von 0-7) || (von 9-12) || (von 14-47) || ( > 56))
{
 ...
}
Wie setz ich das in einen C- Abfrage um?

if((x < 7) || (...?)

Vielen Dank für Eure Antworten.
lg
HAnnes

von Richie (Gast)


Lesenswert?

char x;

if ((x >= 0) && (x <= 7))
 {
 ...;
 }
if ((x >= 9) && (x <= 12))
 {
 ...;
 }

und so weiter.

von Frank W. (Firma: DB1FW) (frankw) Benutzerseite


Lesenswert?

if((von 0-7) || (von 9-12) || (von 14-47) || ( > 56))

if (    ((x >= 0) && (x<  8 ))
     || ((x > 8 ) && (x < 13))
     || ((x > 13) && (x < 48))
     || (x>56)
   )

von Hannes Albert (Gast)


Lesenswert?

Ich hätte noch eine Frage bezüglich der Werte der Tasten auf der 
Tastatur des Computers.
Ich habe hier gelesen, dass die Tastatur bei einem Tastendruck zwei 
Bytes wo auch immer hinschickt.
Ich kann bei meinem Programm aber nur die Zahlen verarbeiten, die mir 
das Hyperterminal schickt.
Mein Problem ist jetzt, dass z.B. die Funktionstasten (F1 bis F4) und 
die Cursertasten den Wert 27 liefern, d.h. ich kann diese Tasten nicht 
unterscheiden.
Kennt jemand einen Weg, wie man diese Tasten doch unterscheiden kann 
bzw. komme ich an die zwei Bytes, die die Tastatur schickt über die 
serielle Schnittstelle irgendwie ran?

vielen Dank für Eure Hilfe.
lg
Hannes

von Hannes Albert (Gast)


Lesenswert?

Vielen Dank!!!
lg
Hannes

von Tom (Gast)


Lesenswert?

Hi,

27 ist Escape. Mit Escape werden die Sonderzeichen eingeleitet und 
danach sollte eigentlich das 2. Zeichen kommen.
Also immer nach einer 27 das nächste Zeichen lesen und als Sonderzeichen 
behandeln.

Gruss

von Karl heinz B. (kbucheg)


Lesenswert?

> Ich habe hier gelesen, dass die Tastatur bei einem Tastendruck zwei
> Bytes wo auch immer hinschickt.

Manche Tasten werden in 2 Bytes aufgelöst.
Alle Standard-ASCII Zeichen sind 1 Byte.

Nur bei den Sondertasten, wie zb. F4 werden 2 Bytes gesendet.
Das erste davon ist 27 (oder in Hex 0x1B oder landläufig Escape).

Hast du dir meinen Rat nicht zu Herzen genommen und
einfach mal ein Programm geschrieben, dass alle Bytes
die es über die Serielle erhält, wieder retourniert.
Da müsste sowas eigentlich einem aufmerksamen Beobachter
auffallen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.