Oder du machst es gleich nur mit Interrupts? (USART0_RX_vect)
Oder du machst es gleich nur mit Interrupts? (USART0_RX_vect)
Daran habe ich auch bereits gedacht.
Da kann der Processor wenigstens noch was vernünftiges in der Zwischenzeit machen.
Derzeit scheint mir aber mein CMPS nicht wirklich zu antworten, wenn ich das in den Griff bekommen habe,
werde ich auf Interrupt umstellen. Das ist meines erachtens die sauberste Lösung.
Gruss R.
Kaum macht man es richtig, schon funktioniert's ...
So vielleicht:
static inline uint8_t uart_getc_wait (void)
{ // Warten, bis etwas empfangen wird
int timeout=0;
while (!(UCSRA & (1 << RXC)) && (timeout++ < 10000));
if(timeout < 10000) return UDR; // Das empfangene Zeichen zurückliefern
else return 0; // timeout aufgetreten
}
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
Lesezeichen