amateur schrieb:
> @Matthias
> Das stimmt zwar, aber die Anzahl an Variablen, die in der/einer
> Interruptroutine verändert werden und von außen befummelt werden, ist
> exakt gleich eins.
Es geht weniger um das Zeitproblem, sondern um das Problem des atomaren
Zugriffs.
Gut, da seine Variablen nur Wertebereiche kleiner 255 haben, ist das
hier im konkreten kein Problem, weil das High-Byte sowieso immer 0 ist.
Aber generell ist man gut beraten, wenn man den kleinsten Datentyp
nimmt, der passend ist. Wenn geht, dann uint8_t oder int8_t. Und bei ihm
geht problemlos.
Und über die Sache mit der 1 Variable reden wir mit dem TO noch mal,
wenn er die Sache mit dem Takt auseinanderdividiert hat. Denn in dem
Fall ist das nicht besonders schlau. Die Minuten und Stundenerhöhung
gehört mit in die ISR hinein. Die Uhr muss als Ganzes interruptgetrieben
weiterlaufen. Selbst dann, wenn in der Hauptschleife 2 Millionen
teuflisch schwierige quadratische Gleichungen zu lösen sind und
zwischendurch 58 _delay_ms( 10000 ) gemacht werden.