void spiCallback(unsigned int irq_source) { if(irq_source == SPIC_TRANS_SUCCESS) { dfmemDeselectChip(); } else if(irq_source == SPIC_TRANS_TIMEOUT) { spic2Reset(); // Reset hardware } }
// ISR for timeout timer void __attribute__((interrupt, no_auto_psv)) _T6Interrupt(void) { // Only one channel busy at a time if(port_status[0] == STAT_SPI_BUSY) { spic1Reset(); int_handler[0](SPIC_TRANS_TIMEOUT); } else if (port_status[1] == STAT_SPI_BUSY) { spic2Reset(); int_handler[1](SPIC_TRANS_TIMEOUT); } _T6IF = 0; }