02-03-2007, 03:07 PM | #11 |
Đệ tử 1 túi
Tham gia ngày: May 2006
Bài gửi: 15
: |
Nếu bạn muốn dùng 2 cái delay_ms() trong cả ngắt và main thì mình nghĩ không có cách nào đâu. nếu bạn cứ muốn dùng nó thì hãy tạo ra 2 hàm delay_ms1() và delay_ms2() và trong ngắt gọi một hàm và trong main gọi hàm còn lại.
Còn có một cách nữa mình nghĩ nó sẽ pro hơn đấy là. mình xin viết lại một đoạn chương trình của bạn trong: bạn khai báo một biến toàn cục như thế này nhé. //======= int1 bit_timer0_status; #INT_TIMER1 void lapngat() { bit_timer0_status =1; } //=========== // và đưa công việc của bạn muốn thực hiện khi có ngắt vào đây. //=========== void isr_timer0(void) { count++; if (count==200) while(true) { output_high(PIN_C1); delay_ms(1000); if(!input(PIN_B3)) break; output_low(PIN_C1); delay_ms(1000); } //=========== //và trong hàm main bạn phải làm thế này //=========== void main(void) { if(bit_timer0_status) { //có thể cấm ngắt timer0. //gọi hàm thực hiện công việc. isr_timer0(); bit_timer0_status=0; //bật ngắt trở lại } } //ok? |
|
|
Similar Threads | ||||
Ðề tài | Người gửi | Chuyên mục | Trả lời | Bài mới |
TUT ve I2C ( pic16f877a ) | mafd_47a | MPASM | 24 | 17-03-2024 12:25 AM |
Lập nhóm PIC16F877A | nhh | Cơ bản về vi điều khiển và PIC | 285 | 08-03-2017 11:08 PM |
Bộ so sánh và PWM cho PIC16F877A | anhquangngai | Cơ bản về vi điều khiển và PIC | 24 | 08-09-2012 09:00 AM |
TUT về USART trong PIC16F877A | mafd_47a | MPASM | 10 | 28-09-2009 09:58 PM |
Pic16f877a TỪ DỄ TỚi KhÓ | ntc | Cơ bản về vi điều khiển và PIC | 373 | 23-05-2009 10:24 PM |