Hallo,
die ISR ist def. nicht zu lang. Ich denke Besserwessi hat den Fehler schon gefunden.
Sind die unterschiedlichen Typen gewollt?Code:static volatile uint16_t _Ticker1ms; . . . uint8_t getTicker1ms( void ) { return _Ticker1ms; }
Wenn du ansonsten innerhalb der ISR bei einem 8Bit Controller eine 16 Bit Variable (_Ticker1ms) änderst, solltest du bei Zugriffen außerhalb der ISR den Interrupt abschalten, sprich die Stelle atomar machen. Es könnte sonst passieren, dass die Variable während des Lesezugriffes von der ISR geändert wird, ist uncool.
Falls du den 16 Bit Wert zurückgeben möchtest.
Wenn du eh nur 8 Bit zurück gibst ist es egal.Code:uint16_t getTicker1ms( void ) { uint16_t Rückgabewert; cli(); Rückgabewert = _Ticker1ms; sei(); return Rückgabewert; }
Gruß
Jens







Zitieren

Lesezeichen