Đây là chương trình ngắt timer0 hay làm:
Mình sử dụng ccs c. Nhưng khi lập trình cho con vdk 16f54 thì ko biết cách gọi ngắt timer của con vdk này. Có bác nào biết xin chỉ giúp.
Nó ko cho khai báo những hàm như sau:
- enable_interrupts(INT_TIMER0);
- enable_interrupts(global);
Nó chi cho sử dụng hàm sau:
- setup_TIMER_0(RTCC_INTERNAL );
- set_timer0();
get_timer0();
Vậy thì ko biết nên sử dụng thế nào nữa. Khi nào thì ngắt timer sẽ tràn.
Mình có thể làm như thế này ko:
if (get_timer0()=100) { work... }
HTML Code:
#int_timer0 void interrupt_timer0() { set_timer0(6); ++count; if(count == 2000) // 2000*500us = 500000us = 1s { count=0; rotate_left(&a,1); } } //Chuong trinh chinh void main(void) { set_tris_b(0); enable_interrupts(int_timer0); setup_timer_0(RTCC_INTERNAL|RTCC_DIV_2); enable_interrupts(global); set_timer0(6);// T_dinhthi = 2*(256 - 6)*1us = 500us a = 0x01; while(true) { PORTB = a; } }
Mình sử dụng ccs c. Nhưng khi lập trình cho con vdk 16f54 thì ko biết cách gọi ngắt timer của con vdk này. Có bác nào biết xin chỉ giúp.
Nó ko cho khai báo những hàm như sau:
- enable_interrupts(INT_TIMER0);
- enable_interrupts(global);
Nó chi cho sử dụng hàm sau:
- setup_TIMER_0(RTCC_INTERNAL );
- set_timer0();
get_timer0();
Vậy thì ko biết nên sử dụng thế nào nữa. Khi nào thì ngắt timer sẽ tràn.
Mình có thể làm như thế này ko:
if (get_timer0()=100) { work... }
Comment