![]() |
![]() |
#11 |
Đệ tử 2 túi
Tham gia ngày: Nov 2006
Bài gửi: 27
: |
Hỏi bác NHH (hoặc có cao thủ nào biết thì chỉ bảo giùm):
Khi dùng hàm delay_ms() trong chương trình con ngắt của các Timer (VD như #INT_TIMER1) hình như có vấn đề gì đó. Khi dịch chương trình thì có cảnh báo " Interrupts disabled..." (Theo mình hiểu thì là mọi ngắt khác điều bị cấm) Khi chạy, nếu chương trình chính có chạy thì thời gian gây ngắt (của Timer1) lại khác so với khi không chạy gì. Đây là toàn bộ chương trình: #include<16F877A.h> #fuses NOWDT,PUT,HS,NOPROTECT #use delay(clock=20000000) int i; int16 count; #INT_TIMER1 void lapngat() { 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); } else set_timer1(0); } void main(void) { enable_interrupts(GLOBAL); enable_interrupts(INT_TIMER1); setup_timer_1(T1_INTERNAL|T1_DIV_BY_8); set_timer1(0); count=0; while(true) if(!input(PIN_B0)) break; while(true) { if(!input(PIN_B1)) while(true) { output_high(PIN_C0); for (i=1;i<=3;i++) delay_ms(1000); output_low(PIN_C0); delay_ms(1000); if(!input(PIN_B2)) break; } } } Thanks to everyone who is interested in. |
![]() |
|
|
![]() |
||||
Ðề tài | Người gửi | Chuyên mục | Trả lời | Bài mới |
TUT về USART trong PIC16F877A | mafd_47a | MPASM | 16 | 19-02-2025 05:32 AM |
TUT ve I2C ( pic16f877a ) | mafd_47a | MPASM | 28 | 28-01-2025 10:45 PM |
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 |
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 |