Có thể dùng một timer khác xem, sợ rằng nó bị lẫn lộn không chạy. Mà cái chương trình của cậu đơn giản thì cần gì phải ngắt timer, ngắt nhiều mà không kiểm soát được thì nó chạy linh tinh ngay. Check 5s đơn giản dùng delay cũng được rồi

Code:
void check_5s()
{
dem=0;
detect_5s=0;
do
{
dem++;
delay_ms(50);
if(dem>=100)detect_5s=1; // 50 x100 = 5000ms = 5s
}
while(!button);
}
Code:
interrupt [EXT_INT0] void ext_int0_isr(void)
{
// Place your code here
check_5s();
if(detect_5s)
{
learn_mode=1;
den_mode=0;
delay_ms(200);
den_mode=1;
}
else
{
kenh++;
if(kenh>4)
{
kenh=0;
learn_mode=0;
PORTB=0;
}
}
}
dạ vâng !!! 
.Do tìm sync chưa đúng hay do ng.nhân gì bác?
Có phải tay phát có vấn đề gì không bác

Comment