Gast
#906593
Hallo
Möchte gern eure Meinung zu meiner Idee hören ob das überhaupt möglich
ist:
Ich mach ne Schaltung die später mit Batterie betrieben werden soll,
insofern muss ich ja besonders auf den Stromverbrauch achten.
Der Programmablauf schaut folgendermaßen aus.
Programmstart - ADC-Messung - do something - 3 Stunden warten(Timer1) -
ADC-Messung usw
Um nun die 3 Stunden nicht sinnlos in der while(1) Schleife zu
verbringen möcht ich nun nach - do something - den µC in den Power-Down
Modus schicken.
Das Problem besteht eben nun darin die 3 Stunden zu ermitteln (der
Idle-Modus wär ja auch ne alternative, jedoch würde ichs echt gern mit
dem Power-Down Modus schaffen), was bis jetzt eben durch den Timer
geschah...ein weiteres Problem besteht darin das die Wartezeit variable
ist (wird aus den Werten der ADC-Messung berechnet).
Da der Watchdog auch quasi als Timer verwendet werden kann, möcht ich
nun versuchen das Problem so zu lösen:
Die maximale Timout-Zeit beim Tiny25 beträgt 8sec, der µC wird jetzt
alle 8sec aufgeweckt und springt zur WD-ISR(dort muss ich im Grunde nur
WDIE setzen damit beim nächsten Mal wieder der WD zur ISR springt)
danach befindet sich der µC ja wieder im Active Mode und der Timer1 ist
wieder aktiv.
(falls ich das jetzt alles richtig verstanden hab was ich bis jetzt
gelesen hab)
Die ISR vom Timer1 schaut dann folgendermaßen aus
ISR-Timer1 (overflow)
{
zaehler++;
if(zaehler >= wartezeit)
{
do something;
}
else <Power-down-Modi>
}
danach falls die zeit noch nicht um ist eben wieder in den power-down
und nach 8sec wieder das gleiche bis die zeit um ist..
die richtige berechnung mit der zeit macht mir noch kopfzerbrechen...und
obs überhaupt möglich ist das ganze so zu realisieren oder obs ne
bessere möglichkeit geben würde...
bin für jeden ratschlag dankbar :)
lg