bool IspSpi_Rx(unsigned char * const buf, int size) { SYS_INT_PROCESSOR_STATUS intStatusSaving; if (size == 0) { return true; } intStatusSaving = SYS_INT_StatusGetAndDisable(); // Disable all interrupts spiBufferHandleRx = DRV_SPI_BufferAddRead(drvSPIHandle, buf, size, 0, 0); if (spiBufferHandleRx == (DRV_SPI_BUFFER_HANDLE)NULL) { // WDRV_ASSERT(false, "SPI read error"); SYS_INT_StatusRestore(intStatusSaving); // Restore interrupts return false; } while (DRV_SPI_BUFFER_EVENT_COMPLETE != DRV_SPI_BufferStatus(spiBufferHandleRx)) // Check for the successful data transfer { DRV_SPI_Tasks(*p_drvSPIObject); } SYS_INT_StatusRestore(intStatusSaving); // Restore interrupts return true; }
void IspSpi_TxRx(unsigned char *p_txBuf, int txLen, unsigned char *p_rxBuf,int rxLen) { if((txLen==0) && (rxLen ==0)) return ; spiBufferHandleTxRx = DRV_SPI_BufferAddWriteRead ( drvSPIHandle, p_txBuf, p_rxBuf,rxLen ) ; if ( spiBufferHandleTxRx == NULL ) { //SYS_ASSERT(false, "SPI Read error"); return ; } while(!(DRV_SPI_BUFFER_EVENT_COMPLETE & DRV_SPI_BufferStatus (spiBufferHandleTxRx) )) //Check for the successful data transfer { DRV_SPI_Tasks (drvSPIObject); } return ; }
bool IspSpi_Rx(unsigned char *buf,int size) { if(size==0) return true; spiBufferHandleRx = DRV_SPI_BufferAddRead ( drvSPIHandle, buf, size ) ; if ( spiBufferHandleRx == NULL ) { //SYS_ASSERT(false, "SPI Read error"); return false; } while(!(DRV_SPI_BUFFER_EVENT_COMPLETE & DRV_SPI_BufferStatus (spiBufferHandleRx) ))//Check for the successful data transfer { DRV_SPI_Tasks (drvSPIObject); } return true; }
void SYS_Tasks ( void ) { /* Maintain system services */ SYS_DEVCON_Tasks(sysObj.sysDevcon); /* Maintain the DMA system state machine. */ SYS_DMA_Tasks(sysObj.sysDma); SYS_FS_Tasks(); SYS_TMR_Tasks(sysObj.sysTmr); /* Maintain Device Drivers */ DRV_TMR_Tasks(sysObj.drvTmr0); DRV_TMR_Tasks(sysObj.drvTmr1); DRV_SPI_Tasks(sysObj.spiObjectIdx1); /* Maintain Middleware & Other Libraries */ /* Maintain the TCP/IP Stack*/ TCPIP_STACK_Task(sysObj.tcpip); /* Maintain the application's state machine. */ TCPIPSTACK_Tasks(); LEDSCROLLER_Tasks(); }
void __ISR(_SPI2_FAULT_VECTOR, ipl1AUTO) _IntHandlerSPIFaultInstance1(void) { DRV_SPI_Tasks(sysObj.spiObjectIdx1); }
void __ISR(_SPI2_RX_VECTOR, ipl2AUTO) _IntHandlerSPIRxInstance1(void) { DRV_SPI_Tasks(sysObj.spiObjectIdx1); }
void __ISR(_SPI1_TX_VECTOR, ipl1AUTO) _IntHandlerSPITxInstance0(void) { DRV_SPI_Tasks(sysObj.spiObjectIdx0); }
void __ISR(_SPI_2_VECTOR, ipl5AUTO) _IntHandlerSPIInstance1(void) { DRV_SPI_Tasks(sysObj.spiObjectIdx1); }
void __ISR ( _SPI1_VECTOR,ipl4 ) _InterruptHandler_SPI_stub ( void ) { DRV_SPI_Tasks((SYS_MODULE_OBJ)appDrvObjects.drvSPIObject); }
static void _Spi_WaitForCompletion(volatile bool *spiDone) { while (*spiDone == false) DRV_SPI_Tasks(*p_drvSPIObject); }
//////////////////////// // SD Card Interrupts // //////////////////////// void __ISR ( _SPI2_RX_VECTOR,ipl4 ) _InterruptHandler_SPI_RX_stub ( void ) { DRV_SPI_Tasks((SYS_MODULE_OBJ)appDrvObj.drvSPIObj); }