der watchdog macht keinen powerdown... der resettet den controller alle 2 sekunden
was willst du denn mit dem programm machen?
Martin
Hallo,
ich habe ein kleines Programm geschrieben, welches den ATTiny13 alle 2 Sekunden nachgucken lässt, ob an Port 0 „Pulsein“ werte zwischen 250 - 255 anliegen.
Danach schicke ich den Tiny13für 2 Sekunden ins Powerdown. Dann soll er wieder wach werden und erneut Messen.
Das Programm funzt soweit, aber nur, wenn ich den Watchdog nicht nutze.
Also den Tiny13 nicht in den Standby schicke bzw. wenn er permanent läuft.
Waran kann das liegen¿
Dank vorab
VG
Uwe
Code:$regfile "attiny13.dat" $crystal = 1200000 $hwstack = 16 Wdtcr = &B11110010 Config Portb.0 = Input Config Portb.3 = Output Config Portb.1 = Output Dim Pulse As Integer Dim Kling As Integer Enable Interrupts Do Kling = 0 Portb.3 = 0 'Port 3 auf Enable schalten Waitms 200 Pulsein Pulse , Pinb.0 , 0 , 1 If Pulse > 250 And Pulse < 255 Then For Kling = 0 To 5 Sound Pinb.1 , 110 , 450 Sound Pinb.1 , 110 , 350 Incr Kling Next End If Portb.3 = 1 'Port 3 auf Disable schalten Powerdown 'Tiny13 schlafen schicken ' Loop Reset Watchdog End
der watchdog macht keinen powerdown... der resettet den controller alle 2 sekunden
was willst du denn mit dem programm machen?
Martin
Linus Torvalds, Entwickler von LinuxIch will Microsoft wirklich nicht zerstören. Das wird nur ein gänzlich unbeabsichtigter Nebeneffekt sein.
Hallo Martin,
ich möchte mit dem Programm erreichen, dass der Tiniy 13 alle 2 Sekunden aufwacht und den Portb3 schaltet (Empfänger ein, ist ein Schalttransistor) dann messen ob an Portb0 ein Wert zwischen 200 – 250 anliegt, wenn ja... dann soll er eine Soundausgabe machen. Wenn keiner dieser Werte anliegt soll er wieder für 2 Sekunden schlafen (Powerdown) gehen. Dann soll das spiel wieder von vorn losgehen.
VG
Uwe
hmm eben hattich unten nich weitergelesen das programm sorry ^^
es könnte natürlich sein, dass der quarzoszi nicht schnell genug anschwingt um einen passenden puls zu erkennen... verwende mal idle statt powerdown, und sach bescheid obs funzt...
Martin
Linus Torvalds, Entwickler von LinuxIch will Microsoft wirklich nicht zerstören. Das wird nur ein gänzlich unbeabsichtigter Nebeneffekt sein.
Hallo Martin,
nein, mit Idle geht es auch nicht.....
VG
Uwe
hmm das iss ja echt ne gute frage, auf die ich grad auch so schnell keine antwort mehr weiß,könnte was mit den reset-bedingungen des controllers zusammenhängen, teste doch mal, ob der watchdog auch alleine schonmal mit der config funzt, also mach ne led an, powerdown, und watchdog sollte dann ja wieder aufwecken -> led leuchten lassen...
was auch noch sein könnte iss das du den watchdog noch starten musst also start watchdog ^^
Martin
Linus Torvalds, Entwickler von LinuxIch will Microsoft wirklich nicht zerstören. Das wird nur ein gänzlich unbeabsichtigter Nebeneffekt sein.
Hallo Martin,
der Watsdog arbeitet... das habe ich schon am Oszilloskop überprüft... der schaltet den Empfänger aus... und dann auch wieder ein dann sehe ich auch mein Sendersignal am Oszi.
Die Stromaufnahme sagt auch ganz klar ... der Watchdog funzt... 5 uA Powerdown und Emfänger aus... 7 mA alles ON....
VG
Uwe
Hallo,
kann es vielleicht sein, das der Watchdogtimer den Pulsein Timer durcheinander bringt?
Wenn ich den Watchdogtimer raus nehme dann geht’s.
Ich habe das ganze auch al mit einem Mega8 probiert und da ist es der gleiche Effekt.
Gibt es noch eine andere Möglichkeit… Strom zu sparen? Oder habe ich den Watchdog nicht Richtig Konfiguriert? Alle 2 Sekunden einen Reset auslösen Wdtcr = &B11110010
VG
Uwe
also der watchdog hat, soweit ich weiß, einen eigenen timer... und das mit der configuration kannst du mal überprüfen indem du einfach "config watchdog ? 2048" statt dem wdtcr da reinschreibst
Martin
Linus Torvalds, Entwickler von LinuxIch will Microsoft wirklich nicht zerstören. Das wird nur ein gänzlich unbeabsichtigter Nebeneffekt sein.
Okay, fangen wir mal mit den Basics an.Zitat von UweMD
Watchdog (zu deutsch: Wachhund):
Der Watchdog wird durch einen unabhängigen Timer gesteuert (jedenfalls bei den meisten AVR Mikrocontrollern).
Der Watchdog ist dafür zuständig, zu überprüfen ob der Mikrocontroller mit dem entsprechendem Programm noch läuft. Dieses wird indirekt dadurch realisiert, das der Timer des Watchdogs resetet wird (Stichwort Watchdog Reset).
Wird aber eben dieser Timer nicht resetet erfolgt irgenwann ein Überlauf. Dieser sorgt dafür, das der Mikrocontroller komplett geresetet wird.
Möglichkeiten des Stromsparens mit dem AVR:
1. alle nicht benötigten Teile des Mikrocontrollers abschalten (z.B. Analog Comperator)
2. nachdem man sich darüber imklaren ist, wodurch der AVR wieder aufwachen soll, den entsprechenden Sleep Modus konfigurieren (Siehe Datenblatt).
Im übrigen, ist der Watchdog schon alleine deshalb nicht zum Wakeup geeignet, da er sich eh erst dann meldet, wenn er eh schon resetet ...
Fazit: Watchdog und Stomsparen sind zwei grundverschiedene Dinge.
Grüße,
da Hanni.
Lesezeichen