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.