Gast
#3693675
Hallo, ich programmiere einen AT90CAN-Prozessor, der mit externem Quarz auf 4MHz läuft. Ich programmiere in C und nutze zwei Timer mit Interrupt bei Overflow - Timer 1: alle 10ms - Timer 3: jede 64tel Sekunde (15,625 ms) Timer 1 nutze ich für diverse zeitabhängigen Abläufe. Pulse und wartezeiten im 10ms-Raster - Timer 3 steuert u.A. den Start diverser AD-Wandlungen Zum Abschluss hatte ich geplant, meinen Prozessor in den Sleep-Mode zu versetzen, um Stromsparmaßnahmen einzuleiten. Leider funktioniert es nicht wie gewünscht, da ich den SleepMode erst im Nachhinein betrachtet habe. Der einzige Sleep Mode, den ich nutzen kann scheint der IDLE-Mode zu sein. gerne würd ich den Standby-Mode nutzen, jedoch ist die Clock(io) abgeschaltet, die - wie ich erst jetzt gesehen habe - meine Timer 1 und 3 ansteuert. meine Frage: Ist das mit dem Timer- und Sleep-Mode- Verständnis von mir korrekt beschrieben? Geplant war eigentlich den Timer1 zu nutzen, alle 10ms (Timer 1) den sleepmode zu verlassen, eine Prog-schleife zu drehen undwieder in den sleep-Mode zu gehen - bis zum nächsten Interrupt auf Timer 1. Kann ich mich davon verabschieden? Wenn ich eine ander Interrupt-Möglichkeit finde z.B. alle 10ms von extern(die ich noch untersuchen muss), schläft dann mein Timer 1? Oder wird meine Variable im Timer1 wie gewünscht alle 10ms erhöht? Ich arbeite das erste mal mit den Sleep-Modes und könnte Unterstützung gebrauchen. Das Tutorial www.mikrocontroller.net/articles/Sleep_Mode habe ich mir bereits durchgelesen.