muốn sử dụng ngắt timer bạn cần thiết lập như sau: mình giả sử dùng ngắt timer 0
setup_timer_0 (RTCC_INTERNAL|RTCC_DIV_4); // TIMER0 sử dụng dao động nội
// xung cho timer0 = osc/4
enable_interrrupts(INT_TIMER0) ; // cho phep ngắt timer0
enable_interrupts(GLOBAL) ; // cho phep ngat toàn cục
set_timer0( timer) ; // giả sử sử dung osc 20MHz ,timer0 8bit
// timer = (256-value)*div*(4/20000000)= xx us
khi đó cứ mỗi khi có cờ timer tràn thì chương trình nhảy đến ngắt timer
#int_timer0
void ngat_timer0()
{
// công việc
}
còn bạn muốn ngắt 1s hay 1 phút thì cho 1 biến tăng dần số lần tràn
counter++;
|