Forum: Mikrocontroller und Digitale Elektronik String lesen, vorzeitig verlasssen


von Phil (Gast)


Lesenswert?

Hallo!

Ich lese einen String in einem Unterprogramm ein.
Wenn nun ein String kommt der nicht mit \n oder \r endet
verbleibt das Programm in diesem Unterprogramm.
Wie könnte ich realisieren, dass das Programm nur ca. eine
Sekunde in diesem Unterprogramm bleibt?

Unterprogrammauszug String empfangen
1
  uint8_t i;
2
  char c;
3
  char* s;
4
  char string[length+1];
5
  s=string;
6
  i=0;
7
  do
8
  {
9
    c=uart_getc();    
10
    if (c!='\r' && c!='\n') 
11
     {
12
      *s=c;      
13
      //uart_putc( c );    
14
    s++;
15
    i++;
16
     }       
17
  }
18
  while(c!='\r' && c!='\n');  
19
  *s=0;
20
21
  while (!(UCSRA & (1<<UDRE))) {}
1
uint8_t uart_getc(void)
2
{
3
    while (!(UCSRA & (1<<RXC))) {} // warten bis Zeichen verfügbar
4
  return UDR;                   // Zeichen aus UDR zurueckgeben
5
  
6
}

von Frank M. (aktenasche)


Lesenswert?

wait funktion mit timer schreiben? wenn du dafür zu faul bist einfach ne 
stinknormale schleife und dann den zähler anpassen so dass es ne sekunde 
ist.

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.