PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Các ngôn ngữ lập trình khác (CCS C, HT PIC,...) (http://www.picvietnam.com/forum/forumdisplay.php?f=12)
-   -   Code đếm và quét led bị lỗi (http://www.picvietnam.com/forum/showthread.php?t=4112)

the_duyet 14-05-2009 04:30 AM

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!

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.


Múi giờ GMT. Hiện tại là 10:55 PM.

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam