Mario Dejung schrieb:
> Ok, macht Sinn, sind ja 16bit Operationen...
> Aber helfen tut es leider auch nicht :-(
Das reicht nicht.
Du hast ja noch einen Zugriff auf led1on, den du kapseln musst
1 | cli();
|
2 | uint16_t tmp = led1on;
|
3 | sei();
|
4 |
|
5 | if (!tmp) {
|
6 | leds();
|
7 | cli();
|
8 | led1on = delay;
|
9 | sei();
|
10 | }
|
Du hast natürlich dadurch, dass du die ganzen Zeitvariablen alle
unsigned int( also 16 Bit) gemacht hast, dem µC jede Menge unnötige
Fleissaufgabe aufgebürdet. Die solltest du (bis auf Millisekunden) alle
als uint8_t führen. Das langt dicke für Sekunden, Minuten, Stunden.