nhanh0112
15-01-2010, 01:41 AM
Các bác cho tui hỏi chút vấn đề về sleep mode và watch dog chạy trong cùng 1 chương trình: (16F877a)
1. WDT có chạy khi sleep ko?
2. Nếu WDT có chạy khi đang sleep vậy nó có đánh thức khi đang sleep ko?
3. Giả sử có đoạn code sau viết trên CSS:
#fuse WDT
#int_EXT
Void isr()
{
………
}
Void main()
setup_wdt(WDT_2304MS);
countdown=200;
while(true)
{
Restart_wdt();
scanLED();
if(countdown==0)
sleep();
else{countdown--;}
}
Quét led chung với quét phím và có kích vào ngắt ngoài khi bấm phím, khi có phím đc bấm thì countdown lại đc set lên 200. Nếu ko có phím đc bấm thì chuyển sang chế độ sleep.
Thuật toán như trên có ổn ko? Hay phải tính toán cho WDT và Sleep như thế nào?
Nhờ các bác hướng dẫn giùm! Cảm ơn các bác.
1. WDT có chạy khi sleep ko?
2. Nếu WDT có chạy khi đang sleep vậy nó có đánh thức khi đang sleep ko?
3. Giả sử có đoạn code sau viết trên CSS:
#fuse WDT
#int_EXT
Void isr()
{
………
}
Void main()
setup_wdt(WDT_2304MS);
countdown=200;
while(true)
{
Restart_wdt();
scanLED();
if(countdown==0)
sleep();
else{countdown--;}
}
Quét led chung với quét phím và có kích vào ngắt ngoài khi bấm phím, khi có phím đc bấm thì countdown lại đc set lên 200. Nếu ko có phím đc bấm thì chuyển sang chế độ sleep.
Thuật toán như trên có ổn ko? Hay phải tính toán cho WDT và Sleep như thế nào?
Nhờ các bác hướng dẫn giùm! Cảm ơn các bác.