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