Mark,
Here is a sample timer interrupt process that I am running:
static TIMER_INTERRUPT_SETUP timer_setup = {0}; // interrupt configuration parameters
timer_setup.int_type = TIMER_INTERRUPT;
timer_setup.int_priority = PRIORITY_TIMERS;
timer_setup.int_handler = IR_Receiver;
timer_setup.timer_reference = 2; // timer channel 2
timer_setup.timer_mode = (TIMER_PERIODIC | TIMER_US_VALUE); // single shot us timer
timer_setup.timer_value = 281; // (562.5/2) // µs delay
// timer_setup.timer_value = 1000;
fnConfigureInterrupt((void *)&timer_setup); // enter interrupt and start timer
The function, IR_Receiver(), gets executed once every 281 us. The problem is that it causes a hardware reset on my MK64 MCU. If I change the timer_value to 1000 us, there is no lockup and the routine runs from beginning to end. It doesn't happen quick enough to get us the valid info we need but it works nonetheless.
I see examples of PIT timers and other timers with 100 us cycle times. I wouldn't think this would be a problem. But, my MCU resets.
Can you explain what is happening?
Regards,
Phil