-
        

Ergebnis 1 bis 2 von 2

Thema: Tiny13 und POWERDOWN OHNE Reset - klappt nicht [gelöst]

  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    30.07.2007
    Alter
    33
    Beiträge
    214

    Tiny13 und POWERDOWN OHNE Reset - klappt nicht [gelöst]

    Anzeige

    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:
    Code:
    $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?...18400&start=30)
    Oder fast genau so.

    Irgendwo mach ich einen Fehler.

    Ideas? Anybody?

  2. #2
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    30.07.2007
    Alter
    33
    Beiträge
    214
    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.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •