/* Write your local variable definition here */ uint8_t master_send[BUFFER_SIZE] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; uint8_t master_receive[BUFFER_SIZE]; uint8_t slave_send[BUFFER_SIZE] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; uint8_t slave_receive[BUFFER_SIZE]; volatile uint8_t i = 0; uint8_t frame_sent = 1; volatile uint32_t swt = 0; /* * B0 - D3 SPI0 CS0 to SPI1 CS0 * B2 - D0 SPI0 clock to SPI1 * E1 - D2 SPI0 SDI to SPI1 SDO * B1 - D1 SPI0 SDO to SPI1 SDI * * A31- A9 SPI0 CS1 to SPI2 CS0 * B2 - B29 SPI0 clock to SPI2 * E1 - B27 SPI0 SDI to SPI2 SDO * B1 - B28 SPI0 SDO to SPI2 SDI * */ /* Write your code here */ CLOCK_SYS_Init(g_clockManConfigsArr, CLOCK_MANAGER_CONFIG_CNT,g_clockManCallbacksArr, CLOCK_MANAGER_CALLBACK_CNT); CLOCK_SYS_UpdateConfiguration(0U, CLOCK_MANAGER_POLICY_AGREEMENT); PINS_DRV_Init(NUM_OF_CONFIGURED_PINS, g_pin_mux_InitConfigArr); PINS_DRV_ClearPins(GPIO_LED, RED_LED); /* Initialize SPI0 */ SPI_MasterInit(&spi1Instance, &spi1_MasterConfig0); //SPI_MasterInit(&spi1Instance, &spi1_MasterConfig1); /* Initialize SPI1 */ SPI_SlaveInit(&spi2Instance, &spi2_SlaveConfig0); //SPI_SlaveInit(&spi3Instance, &spi3_SlaveConfig0); PINS_DRV_SetPins(GPIO_LED, GREEN_LED); OSIF_TimeDelay(500); PINS_DRV_ClearPins(GPIO_LED, GREEN_LED); while(1) { swt = PINS_DRV_ReadPins(PTD); swt &= (1 << 3); swt = (swt >> 3); if(swt == 1) { PINS_DRV_ClearPins(GPIO_LED, GREEN_LED); } else { PINS_DRV_SetPins(GPIO_LED, GREEN_LED); } SPI_SlaveTransfer(&spi2Instance, slave_send, slave_receive, NUMBER_OF_FRAMES); SPI_MasterTransferBlocking(&spi1Instance, master_send, master_receive, (uint8_t) NUMBER_OF_FRAMES, (uint8_t) TIMEOUT); /* verify that the data received is correct */ frame_sent = 1; for(i = 0U; i < BUFFER_SIZE; i++) { if((slave_send[i] != master_receive[i]) || (master_send[i] != slave_receive[i])) { frame_sent = 0; break; } } if(frame_sent == 0) { //PINS_DRV_SetPins(GPIO_LED, BLUE_LED); PINS_DRV_ClearPins(GPIO_LED, BLUE_LED); } else { PINS_DRV_SetPins(GPIO_LED, BLUE_LED); //PINS_DRV_ClearPins(GPIO_LED, BLUE_LED); } swt = PINS_DRV_ReadPins(PTD); swt &= (1 << 3); swt = (swt >> 3); if(swt == 1) { PINS_DRV_ClearPins(GPIO_LED, GREEN_LED); } else { PINS_DRV_SetPins(GPIO_LED, GREEN_LED); } SPI_SetSS(&spi1Instance, spi1_MasterConfig1.ssPin); SPI_SlaveTransfer(&spi3Instance, slave_send, slave_receive, NUMBER_OF_FRAMES); SPI_MasterTransferBlocking(&spi1Instance, master_send, master_receive, (uint8_t) NUMBER_OF_FRAMES, (uint8_t) TIMEOUT); /* verify that the data received is correct */ frame_sent = 1; for(i = 0U; i < BUFFER_SIZE; i++) { if((slave_send[i] != master_receive[i]) || (master_send[i] != slave_receive[i])) { frame_sent = 0; break; } } if(frame_sent == 0) { PINS_DRV_SetPins(GPIO_LED, RED_LED); //PINS_DRV_ClearPins(GPIO_LED, RED_LED); } else { //PINS_DRV_SetPins(GPIO_LED, RED_LED); PINS_DRV_ClearPins(GPIO_LED, RED_LED); } }