Hallo Forum, werden Variable in Registern ala "asm R12" etc, eigentlich auch mit 0 initialisiert ? (scheint mir nicht so...) 2. Frage: ein "sleep" in Assembler ohne vorherige Aktion führt doch zum IDLE-Mode (ATTINY 2313) (ohne wesentliche Strom-Ersparnis oder ? Vielen Dank, weisnix
Der Inhalt duerfte zufaellig sein, das hat SRAM so an sich... ein Register zu lesen ohne es vorher initialisiert zu haben duerfte generell eine schlechte Idee sein -- es sei denn man will Zufall lesen ;)
Hi, Weisnix, WinAVR hat eine Power-Up-Routine, die alle Hardware-Register loescht, bevor sie main() aufruft. Ciao Wolfgang Horn
Wat denn nu ??? ;-) (Trotzdem vielen Dank für die Antworten !)
Register hat nichts mit RAM zu tun. Und ich würde auch nicht darauf wetten, dass das Startup Script Register löscht.
das Ganze mal nach oben bring 1. Frage:Initilaer Wert von Variablen in Registern: Weiß es keiner genau ?? 2. Frage Hat jemand eine Ahnung von meinem Problem mit dem Sleep-Mode Danke schon mal für die Antworten
Probier es doch einfach aus... Einfach den Wert des Registers auf ein LCD ausgeben, dann siehst du die Werte!
Es geht mir auch um die Zuverlässigkeit unter verschiedenen Startbedingungen (z.B. uC nur kurz aus usw.) - Falls die Register nicht 0 gesetzt werden, könnte das Verhalten z.B. auch von verschiedenen Chargen abhängen.
Die Register werden nicht verändert. Ich bin mir nicht ganz sicher, ob sie beim power-up reset von der Hardware auf 0 gesetzt werden. Ja, ein sleep_mode() geht by default in den idle mode. Nein, auch der spart schon einiges an Strom, nur eben nicht so viel wie die Modi, die auch den Hauptoszillator ausschalten können. Wie viel genau, steht in den typischen Werten des Datenblatts deines AVRs.
Ok, dann muß ich halt noch etwas Platz einsparen und die Variablen ordentlich initialisieren. Lt. Datenbalatt spart man ca 2..3 mA im Idle (bei 5V 8Mhz internem Takt (ATTINY 2313)) - hängt natürlich von der Idle-Zeit ab; hier war schon die Meinung zu hören, es würde in der Praxis keinen relevanten Unterschied machen. Vielen Dank, das hilft mir jetzt erst mal weiter.
Naja, ich finde einen Verbrauch von 1,5 mA statt 5 mA schon eine ganz nette Einsparung, wenn man in der Zeit ohnehin nichts tun kann. Bei mir hat die main loop standardmäßig mittlerweile eigentlich ein sleep_mode() am Ende. Ob man damit nun wirklich in der Praxis was einspart, hängt wohl wesentlich davon ab, welchen Anteil das Schlafen am Ende hat. Im Höchstfalle kann man offenbar etwas mehr als 2/3 der Energie damit sparen oder anders gesagt, die dreifache Batterie- lebensdauer erreichen.
@ weisnix (Gast) >Lt. Datenbalatt spart man ca 2..3 mA im Idle (bei 5V 8Mhz internem Takt >(ATTINY 2313)) - hängt natürlich von der Idle-Zeit ab; hier war schon >die Meinung zu hören, es würde in der Praxis keinen relevanten >Unterschied machen. Sleep Mode MFG Falk
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.