Hallo Leute, ich habe ein Problem mit der UART_Lib von Peter Fleury... Grundsätzlich läuft alles prima, aber ich blicke es einfach nicht wenn ich 2 Bytes brauche... Also die normal if abfrage läuft, sieht ca. so aus: ... while(1) { txt=uart_getc(); if ( txt & UART_NO_DATA ) { /* * no data available from UART */ } else { if(txt==1)LCD_clear(); else if(txt==0x0d)ret(); else if(txt==3)...? ... Also eigentlich alles kein größeres Problem. Nun brauch ich nach (if(txt==3)) 2 Bytes der Uart um sie der LCDgotoXY(xx,yy) Routine zu übergeben... da scheitere ich Momentan dran. Ein einfaches xx=uart_getc() fällt weg da er ja sehr wahrscheinlich nur UART_NO_DATA bekommt... Ich blicks echt nicht... HIILFE... Prozessor ist ja eigentlich egal (AT90S2313 hatte ich noch rumliegen), C Compiler ist WINAVR, letzte Version denk ich. Vielleicht kann mir jemand ja einen kleinen Denkanstoß geben, oder ne Routine um 2 Bytes zu Empfangen... also sowas wie get2bytes() oder sowas. Wäre echt super nett. Viele Grüße Harry ps:Ich weiß es ist peinlich, aber manchmal sieht man den Wald vor lauter Bäumen nicht mehr....
Okay hat sich erledigt...bin doch noch hintergekommen... Manchmal braucht man einfach eine kurze Pause zwischendrin ;-)
1 | void get2bytes(void) |
2 | {
|
3 | unsigned int temp; |
4 | uint8_t x,y; |
5 | |
6 | do
|
7 | {
|
8 | temp=uart_getc();; |
9 | } while ( temp & UART_NO_DATA ); |
10 | x=(uint8_t)temp; |
11 | |
12 | do
|
13 | {
|
14 | temp=uart_getc();; |
15 | } while ( temp & UART_NO_DATA ); |
16 | y=(uint8_t)temp; |
17 | |
18 | LCDgotoXY(x,y); |
19 | }
|
Danke trotzdem fürs Lesen ;-) Gruß Harry
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.