Cám ơn bạn nhiều lắm, mình đã hiểu cơ bản về WDT, có thể làm chủ WDT của PIC16F688 rồi. Chạy OK lắm!
Mình hỏi bạn vấn đề nữa:
Code:
CLRWDT();
PIC6F688 into SLEEP();
//đợi ngắt SERIAL (#int_RDA) để đánh thức PIC
ERROR: đánh thức PIC, cấm WDT nhưng không nhảy vào ngắt SERIAL...?:confused:
#int_RDA
void Serial_Interrupt()
{
char c;
c=getc();
putc(c);
}
main()
{
WDTCON=0b00001011; //1:1024 khoi tao lai WDT
restart_wdt();
enable_interrupts(GLOBAL);
enable_interrupts(INT_RDA);
setup_uart(UART_WAKEUP_ON_RDA);
WUE=1;
WDTCON=0b00001011; //WDT enable 1:1024
while(TRUE)
{
ra1=0;
restart_wdt();
sleep();
WUE=1;
enable_interrupts(INT_RDA);
WDTCON=0b00001010; //WDT disable
delay_ms(200);
ra1=1;
delay_ms(1000);
}
}
Mong cao kiến của bạn!?
