![]() |
![]() |
#1 |
Đệ tử 1 túi
|
Code đếm và quét led bị lỗi
Mình có đoạn code này cần mọi người giúp đỡ.
Code:
#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! thay đổi nội dung bởi: namqn, 14-05-2009 lúc 12:34 PM. Lý do: định dạng code |
![]() |
![]() |
![]() |
#2 |
Trưởng lão PIC bang
|
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,
__________________
Biển học mênh mông, sức người có hạn. Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau: http://www.picvietnam.com/forum/showthread.php?t=1263 |
![]() |
![]() |
![]() |
#3 |
Đệ tử 1 túi
|
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.
|
![]() |
![]() |
![]() |
|
|