Sleep-Mode AT90CAN - first contact

Gast #3693675
Lesenswert?

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.
Gast #3694242
Lesenswert?

Aktuell verbraucht meine Schaltung ca. 21 mA. Mit dem Idle-Mode schaffe 
ich 18 mA.
Die Platine soll im Auto verbaut werden und demzufolge möglichst wenig 
Strom verbrauchen um einer Entladung vorzubeugen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren