Watchdog konfigurieren

Gast #23805
Jo Hallo
Ich würd gern mein Controller am Ende des Programms in Sleep-Modus 
setzen und ihn mit dem Watchdog-Timer der nicht vom Sleep-Modus 
beeinflußt wird wieder aufwecken. Wenn der Sleep-Modus gesetzt ist tut 
der Watchdog nach ablauf seiner Zeit ein Wake-Up durchführen.
Wie muss ich denn das konfigurieren, hab hier mal ein kleiner Quelltext 
der beim simulieren mit MPLAB aber nicht gefuntzt hat. Weiß aber auch 
nicht ob man den Watchdog mit dem
MPLAB Sim simulieren kann. Würd mich freuen wenn jemand mir ein kleiner 
Quelltext postet wie man Watchdog + Sleep richtig ins Programm einbaut.

#include <16f872.H>
#fuses HS,WDT,NOPROTECT   //Watchdog einbinden WDT

main()
{
setup_wdt(WDT_18MS);      //Watchdog 18ms stellen

while(1)                  //Dauerschleife
 {
 *
 *                        //*Programm
 *
 restart_wdt();           //Watchdog starten
 sleep();                 //Sleepmodus aktivieren
 }
}
Gast
Kann mir den keiner Helfen, ein Tip würd ja schon reichen. Wenn Ihr nur 
was über den Watchdog wisst könnt Ihr das auch Posten.
Gruß
       Thomas
Gast
Dieses Programm funktioniert 100%.
Der Watchdogtimer schaltet automatisch den SLEEP-Modus ab, nach ca. 2,3 
sek.


#include <16F873.h>
#use delay(clock=4000000)
#fuses XT,WDT

void main() {

   setup_adc_ports(NO_ANALOGS);
   setup_adc(ADC_CLOCK_DIV_2);
   setup_spi(FALSE);
   setup_counters(RTCC_INTERNAL,WDT_2304MS);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_ccp1(CCP_OFF);
   setup_ccp2(CCP_OFF);

   while(1) //Dauerschleife
   {
       delay_ms(200);
      output_low(PIN_C1);
      restart_wdt(); //Watchdog starten
      sleep(); //Sleepmodus aktivieren
      switch (restart_cause())                      // Mit dieser 
Funktion überwachst du  alle Reset Funktion
      {                                                        // wie 
auch der Watchdogtimer im Schlafmodus
         case WDT_FROM_SLEEP:
         output_high(PIN_C1);

      }
   }

}


Ich hoffe ich konnte dir helfen

Gruss
Fernando Heitor

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 23 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.