Davon ist abzuraten. Grundsätzlich gilt: ISRs immer so kurz wie möglich halten.Kann ich die Regelung in die Timer0 ISR einbauen
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:
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.Code:do { if (TimerFlag) { TimerFlag = 0; regelung(); } c = uart_getc(); } while (c & UART_NO_DATA);![]()







Zitieren

Lesezeichen