ich hab mal eine frage bei meinem mega8. ich würde gern den internen takt osc benutzen (4MHz) der timer0 macht alle ~65ms einen interrupt und fragt in einer 3 zeilen routine nach änderungen an einem der portpins ab. danach geht er in den sleep mode und wartet den nächsten timer0 int ab. es geht jetzt um die sleep einstellungen bei internen osc. ich verstehe es im datenblatt so, das man ihn dann nur in den idle mode schicken kann..wegen dem internen clk und dem timer0 interupt..richtig soweit?? jetzt mal die dumme frage: wieviel bringt einem eigentlich der sleep mode wenn man alle 65 ms die abfrage macht?? also sparrt das wirklich noch viel batteriekapazität?? ich überlege nämlich ob ich den timer0 sonst bei einer best routine in den power down mode schicke, den timer0 (ggf) abschaltet und auf nen externen interrupt warte der alles wieder zurückschaltet. das sollte doch beim internen takt auch klappen oder?? jemand sowas schonmal gemacht??
der idle-mode bringt Stromersparnis, aber nicht allzuviel. Steht aber genau im Datenblatt, wieviel Strom bei welcher Spannung und welcher Frequenz verbraucht wird. Kommt es auf geringsten Stromverbrauch an, benutz den Osz/Timer2 mit einem 32kHz-Uhrenquarz und schick den Proz. in den power-down. Der Int vom Timer 2 kann ihn dann regelmässig wecken.
das mit dem uhrenquarz ist ein guter tip.. aber wieso power down?!? du meinst power stop oder?? und dann das as2 im assr setzen...nur da hat er die weckoption oder
Theoretisch (habe ich noch nicht ausprobiert) funktioniert auch pwdn zusammen mit dem Watchdogtimer. Dann bekommt der avr regelmässig einen Reset. Das der vom Watchdog kommt, kann man per Flag rauskriegen. Das RAM sollte vom Reset nicht beeinflusst werden. Hört sich zwar brute-force an, sollte aber bei vielen Anwendungen funktionieren. Übrigens: die neuen mega48/88/168 haben an allen Pins pin-on-change Interrupts. Die können also aus dem pwdn aufwachen, sobald sich an irgendeinem der Pins was tut. Stefan
jo, power-save meine ich. watchdog ginge auch, braucht aber mehr Strom (60µA gegenüber 10µA), der Uhrenquarz hat auch noch den Vorteil, dass man damit eine relativ genaue RTC programmieren kann, dass dürfte mit dem watchdog kaum gelingen.
Stimmt, crazy horse. Kommt halt immer auf die Applikation drauf an, ob mehr Genauigkeit oder eher die Pins wichtig sind. Ich wollte nur mal an diesen "vergessenen" Timer erinnern ... Der mega88 braucht übrigens nur noch 8 (worstcase 15)uA für den Watchdog. Hoffentlich kriegen die bald mal die Kurve mit der neuen Serie ;-) Stefan
der watchdog war wirklich "vergessen" bling damit sollte es funktionieren wie ich es brauch..danke jungs :)
"fragt in einer 3 zeilen routine nach änderungen an einem der portpins ab" Wäre es nicht besser den INT0/INT1 Low Level oder Pin Change IQR zu benutzen um direkt auf diese Pinänderungen zu reagieren. Dann kannst du nämlich den AVR tatsächlich in den Power Down Mode schicken, und erst wenn sich der Pin ändert wird der AVR aufgeweckt. Du kannst somit den Power Down Mode benutzen, der Watchdog/Timer/Async Timer mit Uhrquarz wird alles hinfällig. Man arbeitet also komplett ohne Timer, und der Power Down Mode spart die meiste Energie, < 5µA sollte somit ohne weiters möglich sein. Gruß Hagen
Einklink. Ws bitt eist ein Lowlevel Interrupt? rennt er da immer in einer Schleife, bis der PIN wierder H-Pegel führt? Ich komme drauf, weil der Mega8 sich lt.Datenblatt nur mit LowLevelInt0 aus dem Powerdown aufwecken lässt. /Bei mir läufts übrigens auch über den Timer2 mit Uhrenquartz. Kann ich nur empfehlen, wobei mir die Sekunde irgentwie Spanisch vorkommt, muss ich mal nachmessen, ich glaube das Ding geht irre Vor (oder nach). Gruß AxelR.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.