Kann ich die Regelung in die Timer0 ISR einbauen
Davon ist abzuraten. Grundsätzlich gilt: ISRs immer so kurz wie möglich halten.
Mein Vorschlag:
Nimm eine zusätzliche globale Variable:
volatile unsigned char TimerFlag;
Füge in die ISR ein:
TimerFlag = 1;
Und modifiziere in main die Schleife, die auf das nächste Zeichen wartet:
Code:
do {
if (TimerFlag) {
TimerFlag = 0;
regelung();
}
c = uart_getc();
} while (c & UART_NO_DATA);
Es in die "warte auf das nächste Zeichen"-Schleife einzufügen ist allerdings ein wenig Quick&Dirty. Ich persönlich würde die Struktur von main wieder ein wenig ändern, aber dazu habe ich jetzt keine Lust.
Lesezeichen