|
Tài trợ cho PIC Vietnam |
Những câu hỏi thường gặp Những lỗi cơ bản thường gặp khi làm việc với PIC hoặc những vấn đề cơ bản nhất thường được hỏi trong những năm qua |
|
Ðiều Chỉnh | Xếp Bài |
22-07-2011, 12:57 PM | #1 |
Nhập môn đệ tử
Tham gia ngày: Jun 2011
Bài gửi: 4
: |
help set timer 0
Mình muốn sao mỗi giây thì tăng giá trị của Port D lên 1 lần.
Sao mình mô phỏng trên protues thì lâu hơn 1 giây nó mới tăng lên 1 lần.Không lẽ mình giá trị của set_Timer0 không đúng. Ai giúp mình với. #include <16F877A.h> #include <DEF_877a.h> #fuses NOWDT,PUT,XT,NOPROTECT #use delay(clock=4000000) #byte PORTB = 0x06 int16 count; int8 a,b; int8 c; //Chuong trinh ngat TMR0 #int_timer0 void interrupt_timer0() { set_timer0(6); ++count; if(count == 2000) // 2000*500us = 500000us = 1s { count=0; a++; if(a ==10) { a=0; b++; if(b==6) b=0; } c=b<<4; c=c+a; PORTD = c; } } //Chuong trinh chinh void main(void) { set_tris_d(0); setup_timer_0(RTCC_INTERNAL|RTCC_DIV_2); enable_interrupts(int_timer0|global); set_timer0(6);// T_dinhthi = 2*(256 - 6)*1us = 500us a=0; b=0; c=0; while(true) { } } |
|
|