PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Zahlentest



Karlja
30.09.2005, 23:23
Hallo,

Ich bekomme per UART-Interrupt Zeichen vom PC auf einen ATMega8 übergeben, dabei würde ich aber gerne abfragen, ob diese Zeichen Zahlen sind oder nicht...
Gibt es dazu eine simple Funktion? Oder muss ich die einzelnen Zahlen abfragen? Also mit case und dann 0 bis 9 = empfangenes Zeichen abfragen?

Vielen Dank schonmal.
cu
Karlja

PicNick
01.10.2005, 09:33
Am einfachsten
select case Zeichen
case &H30 to &H39: ' numerisch 0 - 9
case else: ' NICHT numerisch
end select
Überhaupt, wenn du bei PC-EIngaben sowieso Verschiedenes abfragen mußt

Vogon
01.10.2005, 21:07
Du kannst auch aus der AVR-libc diese Functionen benutzen :

int isalpha ( int __c )
Checks for an alphabetic character.
It is equivalent to (isupper(c) || islower(c)).

int isascii ( int __c )
Checks whether c is a 7-bit unsigned char value that fits into the ASCII character set.

int isdigit ( int __c )
Checks for a digit (0 through 9).

Schau doch mal in dein Verzeichnis:
C:\WinAVR\doc\avr-libc\avr-libc-user-manual

PicNick
02.10.2005, 09:44
@Vogon: Werter Kollege, sie befinden sich hier im BasCom-Forum. das
avr-libc-user-manual verwenden wir hier als Unterlage zum Kartoffel-Schälen.

Vogon
02.10.2005, 11:07
quia peccavi nimis cogitatione, verbo et opere: mea culpa, mea culpa, mea maxima culpa.

PicNick
02.10.2005, 11:35
Solang' den Worten keine Taten folgen, isses ja halb so schlimm. Also brauchst du dich auch nicht mit Asche zu bestreuen und dein Hemd zu zerreissen, die Frau Gemahlin hätt' eh keine Freude. :Haue

Edit gestrichen,