// interrupts.c #include #include <912D60.h> #include "kernel.h" // FUNCTION PROTOTYPES void _start(void); /* Example code flow for all of these handlers: // IF interrupt isn't very time critical: figure out who cares, if anyone, then send a msg to the caring task if (resource[ADC].owner != 255) task[resource[ADC].owner].message |= ADC_MSG; // IF interrupt is time critical: (ie, there's data that needs to be serviced) get the data, put it in a buffer, then put the data in the message buffer task[resource[ADC].owner].message_data[ADC_MSG] = ADC; // ADC = correct port definition? */ // GLOBALS extern unsigned int interrupt_flags_ADC; extern unsigned int interrupt_flags_TC; #pragma interrupt_handler MDCOF_handler() void MDCOF_handler(void) { // LOCAL VARIABLES extern unsigned long int time_tick; // acknowledge the interrupt, incriment global time_tick MCFLG = 0x80; time_tick++; } #pragma interrupt_handler KWU_handler() void KWU_handler(void) {} #pragma interrupt_handler ADC_handler() void ADC_handler(void) {} /* #pragma interrupt_handler SCI0_handler() void SCI0_handler(void) { } */ #pragma interrupt_handler SCI1_handler() void SCI1_handler(void) {} #pragma interrupt_handler SPI_handler() void SPI_handler(void) {} #pragma interrupt_handler PAIE_handler() void PAIE_handler(void) {} #pragma interrupt_handler PAO_handler() void PAO_handler(void) {} #pragma interrupt_handler TOF_handler() void TOF_handler(void) {} #pragma interrupt_handler TC7_handler() void TC7_handler(void) {} #pragma interrupt_handler TC6_handler() void TC6_handler(void) {} #pragma interrupt_handler TC5_handler() void TC5_handler(void) {} #pragma interrupt_handler TC4_handler() void TC4_handler(void) {} #pragma interrupt_handler TC3_handler() void TC3_handler(void) {} #pragma interrupt_handler TC2_handler() void TC2_handler(void) {} #pragma interrupt_handler TC1_handler() void TC1_handler(void) {} #pragma interrupt_handler TC0_handler() void TC0_handler(void) {} #pragma interrupt_handler IRQ_handler() void IRQ_handler(void) {} #pragma interrupt_handler XIRQ_handler() void XIRQ_handler(void) {} #pragma interrupt_handler SWI_handler() void SWI_handler(void) {} #pragma interrupt_handler COP_handler() void COP_handler(void) { puts("COP RESET!"); _start(); } #pragma interrupt_handler CLM_handler() void CLM_handler(void) {}