Part Number: TM4C1290NCPDT
Tool/software: Code Composer Studio
I'm running as a Master, and need to transmit 1 word at a time with an interrupt once that word is done being shifted out. The code follows, the interrupt routine is never called.
MAP_SysCtlPeripheralEnable(SYSCTL_PERIPH_SSI3);
(there is other code running here so SSI3 has time to enable)
IntMasterEnable();
SSIConfigSetExpClk( SSI3_BASE, //
GetCpuClk(), //
SSI_FRF_MOTO_MODE_0, //
SSI_MODE_MASTER, //
100000, // *FIXME* Fairly slow to start.
8 ); //
SSIEnable(SSI3_BASE); //
SSIIntRegister(SSI3_BASE, SSI3_Isr); // Set up SSI3 Isr.
SSIIntEnable(SSI3_BASE, SSI_TXEOT); // Interrupt on Transmit FIFO empty.
SSIDataPut(SSI3_BASE, Data);
void SSI3_Isr(void) {
Never called.
}
Other interrupts are running (e.g., uart interrupts) and when I originally wrote non-interrupt driven code it worked fine. I note that in the TivaWare Periperal Driver Library User's Guide, and in the ssi.c code itself, they only lists SSI_TXFF, SSI_RXFF, SSI_RXTO and SSI_RXOR as valid, but in ssi.h it includes SSI_TXEOT as valid.
Thanks, Doug