Hallo liebes Forum! Ich habe folgendes Problem und erhoffe mir vielleicht hier die Lösung zu finden: Seit einiger Zeit, entwickle ich eine 10W-LED-Taschenlampe, welche mithilfe eines Mikrocontrollers (ATtiny13) gesteuert wird. Dies Funktioniert bisher auch alles prächtig, bis auf das kleine Detail der Stromaufnahme im Stand-By-Betrieb (5mA). Daher habe ich mir gedacht, ich verwende dazu den Power-Down-Mode des Mikrocontrollers, um den Energiebedarf rapide zu senken und somit die Akkus zu schonen. Obwohl dies laut Datenblatt (siehe Anhang) nicht all zu schwer schien, habe ich es bisher nicht geschafft, diesen Modus zu aktivieren (==> den Strombedarf <5mA zu senken). Ich verwende den internen 9.6MHz RC-Oscillator, welcher für meine Zwecke vollkommend ausreicht. Im Anhang findet ihr meinen (äußerst simplen) Quelltext für den Power-Down Mode, ein Auszug aus dem Datenblatt, sowie die von mir gesetzten Fuse-Bits. Meine Frage nun an euch: Habe ich denn alles richtig gemacht (programmiert) oder etwa ein Bit vergessen (übersehen zu setzen)?! Vielen Dank, bereits im Voraus lg Ben91
Hallöchen.. Wie sieht deine Schaltung und der Rest des Programms aus. Vlt. wird der Prozessor durch eine andere Programm-Routine ständig wieder aus dem Sleep-Modus geweckt. Ich würde den Sleep-Modus durch eine Tastenabfrage (on/off) an einem Interrupt-Pin in einer Interrupt-Routine aktivieren oder deaktivieren und nicht in der Hauptprogrammschleife. mfg Rolf
Hallo Rolf! Ich habe mal probeweise nur den power-down-Mode auf dem uC aktiviert & er benötigt denoch den selben Strom, als hätte ich diesen Modus gar nicht eingeschaltet :-( Schaltungsmäßig sind am Controller nur Vcc und GND angeschlossen. Was gibt es da den für eine logische Erklärung?! lg Ben91
Hat nun jemand einen Tipp für mich?! Leider hängt bei mir das ganze Projekt vom Energie-Verbrauch des Controllers ab :-(
ben91 schrieb: > Ich habe mal probeweise nur den power-down-Mode auf dem uC aktiviert & > er benötigt denoch den selben Strom, als hätte ich diesen Modus gar > nicht eingeschaltet :-( Da hatter auch recht, Du hast ihn nicht eingeschaltet. Dazu brauchts noch den Sleep-Befehl. Und das Main darf nicht ins Niemandsland laufen, da gehört ne Endlosschleife rein. Peter
Hallo Peter, danke für deine Antwort! Das mit der Endlos-Schleife habe ich vergessen hinein zu schreiben. Dennoch funktioniert der Sleep-Mode nicht ... wie meintest du aktivieren? Gibt es dazu denn einen speziellen Befehl?! lg Ben91
Was hältst du davon wenn du mal deinen Code hier postest ? Ansonsten würde ich behaupten Zeile 86 ... genau da müsste der Fehler sein ! Spaß =)
Hallo! Der Quellcode ist oben bereits angeführt. Hier habe ich die überarbeitete Version nochmal gepostet. Wie kann ich denn den Power-Down-Mode aktivieren?! lg Ben91
#define sleep() asm volatile ("sleep") den oben rein und dann im quellcode sleep(); aufrufen.
Nachtrag: kann sein dass es dieses Define in der sleep.h schon gibt. ;-)
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.