PDA

View Full Version : Code đếm và quét led bị lỗi


the_duyet
14-05-2009, 04:30 AM
Mình có đoạn code này cần mọi người giúp đỡ.

#int_ext

void ngat_RB0()
{
int16 a;
int8 i,n, nghin, tram, chuc, dvi;
i=a;
++a;
n=a;
nghin=n/1000;
n=n%1000;
tram=n/100;
n=n%100;
chuc=n/10;
dvi=n%10;


while(true)
{
output_d(dvi|0xE0);
delay_ms(50);
output_d(chuc|0xD0);
delay_ms(50);
output_d(tram|0xB0);
delay_ms(50);
output_d(nghin|0x70);
delay_ms(50);
}

}


Ý của mình là khi có tín hiệu ngắt thì ++a sau rùi biến đổi mã nhị phân.nhưng minh đang mắc trong vòng quét led.Có cao thủ nào chỉ dẫn hộ cái,đau đầu wa.có thể là bị sai phương pháp?
Giả sử muốn xuất 1 tín hiệu hồng ngoại ra 1 cổng rùi lấy cổng khác thu tín hiệu thì làm thế nào.bác nào có tài liệu liên quan thì share đc ko.Thanks!

namqn
14-05-2009, 12:36 PM
Vòng lặp while (true) {...} của bạn đang nằm trong code xử lý ngắt, do đó bạn sẽ không thể thoát khỏi đoạn chương trình xử lý ngắt nếu ngắt RB0 xảy ra.

Thân,

the_duyet
17-05-2009, 12:24 AM
Cảm ơn a namqn nhiều, e đã làm được, chỉ cần cho vòng lặp while(true){...} trên đây vào hàm main còn hàm ngắt để tăng giá trị biến là đc.