3,10 → 3,15 |
#include "defines.h" |
#include "TIMER5.h" |
|
static void (*callback_function)(void); |
static TIMER_DATA *timer_data_ptr; |
|
void TIMER5_Init(void (*callback)(void), unsigned int time_us) { |
callback_function = callback; |
void TIMER5_Init(TIMER_DATA *data, void (*callback)(void), unsigned int time_us) { |
if (data != NULL) // if ptr is null, use existing data |
timer_data_ptr = data; |
|
timer_data_ptr->callback_function = callback; |
|
// Note: PR5 is 16-bit wide! (max time_us = 13107) |
int time = 5 * time_us; |
|
INTDisableInterrupts(); |
32,7 → 37,7 |
|
void __ISR(_TIMER_5_VECTOR, ipl4) __TIMER_5_Interrupt_Handler(void) { |
// Call the saved callback function |
(*callback_function)(); |
(*timer_data_ptr->callback_function)(); |
|
IFS0CLR = 0x00100000; // Clear the timer interrupt flag |
} |