//------------------------------------------------------ void SPI_StartTransmitPacket(void) { if (!SPITransferCompleted) return; SLAVE_SELECT_PORT &= ~(1 << SPI_SLAVE_SELECT); // SelectSlave SPI_TX_Buffer = (unsigned char *) &ToNaviCtrl; ToNaviCtrl.Command = SPI_CommandSequence[SPI_CommandCounter++]; if (SPI_CommandCounter >= sizeof(SPI_CommandSequence)) SPI_CommandCounter = 0; SPITransferCompleted = 0; UpdateSPI_Buffer(); // update buffer SPI_BufferIndex = 1; ToNaviCtrl.Chksum = ToNaviCtrl.Sync1; SPDR = ToNaviCtrl.Sync1; // Start transmission }
//------------------------------------------------------ void SPI_StartTransmitPacket(void) { //if ((SLAVE_SELECT_PORT & (1 << SPI_SLAVE_SELECT)) == 0) return; // transfer of prev. packet not completed if (!SPITransferCompleted) return; SLAVE_SELECT_PORT &= ~(1 << SPI_SLAVE_SELECT); // SelectSlave SPITransferCompleted = 0; UpdateSPI_Buffer(); // update buffer SPI_BufferIndex = 1; DebugOut.Analog[16]++; // -- Debug-Output --- /* DebugOut.Analog[20] = FromNaviCtrl.Comp; DebugOut.Analog[21] = FromNaviCtrl.GPS_Nick; DebugOut.Analog[22] = FromNaviCtrl.GPS_Roll; DebugOut.Analog[23] = FromNaviCtrl.CompassValue; */ //---- SPDR = ToNaviCtrl.Sync1; // Start transmission ToNaviCtrl.ChkSum = ToNaviCtrl.Sync1; }