Forum: Mikrocontroller und Digitale Elektronik Peter Fleury's UART Library uart_getc Problem


von Harry S. (littlegonzo)


Lesenswert?

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....

von Harry S. (littlegonzo)


Lesenswert?

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
Noch kein Account? Hier anmelden.