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 } }
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
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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.