Tool/software: TI-RTOS
I need to send data for every 0.5 ms through SPI protocol. I had configured timer stattically for 0.5 milliseconds and added the code for sending data via SPI, in ISR of the Timer configured, still it's not working. This is the code
/* XDCtools Header files */ #include <xdc/std.h> #include <xdc/runtime/System.h> #include <xdc/cfg/global.h> /* BIOS Header files */ #include <ti/sysbios/BIOS.h> #include <ti/sysbios/knl/Task.h> /* TI-RTOS Header files */ #include <ti/drivers/GPIO.h> #include <ti/drivers/SPI.h> #include <ti/sysbios/BIOS.h> #include <ti/sysbios/knl/Semaphore.h> #include <ti/sysbios/family/arm/m3/Hwi.h> /* Board Header file */ #include "Board.h" #include "driverlib/gpio.h" #include <inc/hw_memmap.h> #include <inc/hw_types.h> #include <inc/hw_ssi.h> #include <driverlib/ssi.h> #include <driverlib/udma.h> #include <driverlib/sysctl.h> #include "driverlib/timer.h" #include <ti/sysbios/hal/Timer.h> UChar array[8] = {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF}; UChar receiveBuffer[8]; UChar transmitBuffer[8]; void spiDataSend() { int l; for (l = 0; l < 8; l++) { transmitBuffer[l] = array[l]; } int i; SPI_Handle spi; SPI_Params spiParams; SPI_Params_init(&spiParams); spiParams.dataSize = 8; /* dataSize can range from 4 to 8 bits */ spiParams.transferMode = SPI_MODE_BLOCKING; spiParams.mode = SPI_MASTER; spiParams.transferCallbackFxn = NULL; spi = SPI_open(Board_SPI0, &spiParams); if (spi == NULL) { /* Error opening SPI */ } SPI_Transaction spiTransaction; Bool transferOK; spiTransaction.count = 8; spiTransaction.txBuf = transmitBuffer; spiTransaction.rxBuf = receiveBuffer; transferOK = SPI_transfer(spi, &spiTransaction); if (transferOK) { /* Error in SPI transfer or transfer is already in progress */ System_printf("SPI Transfer is successful \n"); System_flush(); } System_printf("transmitBuffer is : \n"); System_flush(); for (i = 0; i < 8; i++) { System_printf(" %x ",transmitBuffer[i]); } System_printf("\n"); System_flush(); SPI_close(spi); } void hw_init() { Board_initGeneral(); Board_initGPIO(); Board_initSPI(); } /* * ======== main ======== */ int main(void) { hw_init(); /* Start BIOS */ BIOS_start(); return (0); }