www.pudn.com > test11.rar > timer_milliseconds.c, change:2008-07-31,size:1022b
// file: timer_milliseconds.c // // A simple milliseconds counter that REQUIRES a timer // named na_timer1, and hogs it completely up. // #include "excalibur.h" #ifdef na_timer1 static void timer_isr_handler(int context); static int milliseconds_count; int nr_timer_milliseconds(void) { static int running_yet = 0; if(!running_yet) { milliseconds_count = 0; nr_installuserisr(na_timer1_irq,timer_isr_handler,0); na_timer1->np_timerperiodl = (nasys_clock_freq_1000) & 0x0000ffff; na_timer1->np_timerperiodh = (nasys_clock_freq_1000 >> 16) & 0x0000ffff; na_timer1->np_timercontrol = np_timercontrol_start_mask | np_timercontrol_cont_mask | np_timercontrol_ito_mask; running_yet = 1; } return milliseconds_count; } static void timer_isr_handler(int context) { milliseconds_count++; na_timer1->np_timerstatus = 0; // write to clear the IRQ } #endif // end of file