Subversion Repositories Code-Repo

Compare Revisions

Ignore whitespace Rev 200 → Rev 201

/PIC Stuff/Cerebot_32MX7_LED_Cube/TIMER5.c
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
}