-
        

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: Watchdog und Pulsein

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    14.08.2004
    Ort
    Magdeburg
    Beiträge
    154

    Watchdog und Pulsein

    Anzeige

    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

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.03.2004
    Ort
    Bielefeld (JA, das gibt es!)
    Alter
    29
    Beiträge
    1.614
    der watchdog macht keinen powerdown... der resettet den controller alle 2 sekunden

    was willst du denn mit dem programm machen?

    Martin
    Ich will Microsoft wirklich nicht zerstören. Das wird nur ein gänzlich unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds, Entwickler von Linux

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    14.08.2004
    Ort
    Magdeburg
    Beiträge
    154
    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

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.03.2004
    Ort
    Bielefeld (JA, das gibt es!)
    Alter
    29
    Beiträge
    1.614
    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
    Ich will Microsoft wirklich nicht zerstören. Das wird nur ein gänzlich unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds, Entwickler von Linux

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    14.08.2004
    Ort
    Magdeburg
    Beiträge
    154
    Hallo Martin,


    nein, mit Idle geht es auch nicht.....


    VG
    Uwe

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.03.2004
    Ort
    Bielefeld (JA, das gibt es!)
    Alter
    29
    Beiträge
    1.614
    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
    Ich will Microsoft wirklich nicht zerstören. Das wird nur ein gänzlich unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds, Entwickler von Linux

  7. #7
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    14.08.2004
    Ort
    Magdeburg
    Beiträge
    154
    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

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    14.08.2004
    Ort
    Magdeburg
    Beiträge
    154
    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

  9. #9
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.03.2004
    Ort
    Bielefeld (JA, das gibt es!)
    Alter
    29
    Beiträge
    1.614
    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
    Ich will Microsoft wirklich nicht zerstören. Das wird nur ein gänzlich unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds, Entwickler von Linux

  10. #10
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    30.07.2005
    Beiträge
    569
    Zitat Zitat von UweMD
    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
    Okay, fangen wir mal mit den Basics an.

    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.

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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