Die fehlenden Antworten liegen vermutlich daran, dass da nur ein
Bruchteil des Codes steht und bergeweise Informationen fehlen. Die
Aussage "Ich verwende Timer und Prescaler 64" bringt genauso viel, wie
"Ich habe ein Auto".
Wie genau hast Du Deinen Timer konfiguriert. In welchen Intervall
erwartest Du, dass er triggert, ...
Ausserdem steht da "LongWait" - kenn' ich nicht. Klingt aber nach
busy-waiting, was per definition "böse" ist.
Ein paar ganz allgemeine Tips:
- Nie busy-waiting, immer StateMachine, ausser Du weisst ganz genau was
Du tust.
- Lass Deinen Timer im Interrupt einen globalen Zähler hochzählen (z.B.
im Millisekundentakt) und verwende diesen Zähler als globale Zeitbasis
(manche Architekturen haben dafür einen SysTickCounter). Je nach Bedarf
16 oder 32 bit Integer.
- Lass in der Main-Loop eine LED durchgehend blinken. z.B. mit
1 | if ((sysTickCounter & 0xFF) == 0) toggleLed();
|
Damit weißt Du dass Dein Timer läuft und Dein Programm nicht in
irgendwelchen Interrupts oder Busy-Waiting-Kram (den Du ja eh nicht mehr
machst) hängt.
Du wirst sehen, wenn Du diese Ratschläge befolgst, wirst Du Dein Problem
nicht mehr haben...