PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Tiny13 und POWERDOWN OHNE Reset - klappt nicht [gelöst]



Cairol
08.12.2008, 23:57
Ich hab jetzt den Tiny13 zum 116ten mal geflashed und schaffe es immer noch nicht den Watchdog dazu zu bringen, nach einem "POWERDOWN" den Chip einfach wieder zu erwecken so dass das Programm exakt nach dem POWERDOWN wieder weiter geht.

Ich führe im "echten" Programm eine Zählvariable mit, die nicht verloren gehen darf, deshalb kann ich hier kein Reset brauchen.

Scheinbar tut er aber genau das.

Hier mal das Test-Programm:


$regfile = "ATtiny13.dat" 'Hinweis: ATTiny13 mit internem 1,2MHz-Takt (9,6 MHz / 8)
$framesize = 32
$swstack = 20
$hwstack = 20
$crystal = 1200000

Wdtcr = &B11110001
'gewollt: 8 Sekunden Time-Out OHNE Reset (soll weitermachen wo er aufgehört hat)

Enable Interrupts

Config Pinb.4 = Output

Const Ein = 1
Const Aus = 0

heizen Alias Portb.4

Wait 5

Start WATCHDOG

heizen = Ein

Reset Watchdog
POWERDOWN

heizen = Aus
End


Hier läuft das Programm nie ins "End". Die Abfolge nach dem Power-ON ist:
- 5 Sekunden Pause (vom WAIT)
- EIN
- 8 Sekunden Pause (vom WD)
- AUS
- 5 Sekunden Pause
- ...
- ...
- u.s.w.

Also macht der Tiny offensichtlich einen Reset.

Ich weis, dass man den WD im wdtcr-Register auch auf "Interrupt-Mode" stellen kann und nach meinem Ermessen hab ich das auch mit obiger Einstellung getan. (und noch viele andere Kombinationen probiert)
Aber trotzdem läuft es falsch.
Beim Googlen waren auch mehrere Programme zu finden, wo es genau so gemacht wurde. (z.B. hier: http://www.geoclub.de/viewtopic.php?f=57&t=18400&start=30)
Oder fast genau so.

Irgendwo mach ich einen Fehler. :-k

Ideas? Anybody?

Cairol
12.12.2008, 17:21
Hab den Fehler gefunden.
Man muss das Bit "WDTIE" nach jedem Watchdog-Interrupt wieder manuell setzen, also nach jedem "POWERDOWN" ein "Wdtcr.6 = 1" schreiben.
Das Bit wird hardwareseitig nach jedem WD-Interrupt gelöscht, so dass er beim 2. mal einen Reset auslöst.
Steht eigentlich auch im Datenblatt, aber ich habs nicht richtig interpretiert.

Thema kann geschlossen werden.