Subversion Repositories FlightCtrl

Compare Revisions

Ignore whitespace Rev 616 → Rev 617

/trunk/spi.c
8,7 → 8,7
volatile unsigned char SPI_Buffer[sizeof(FromNaviCtrl)];
unsigned char *Ptr_buffer = (unsigned char *) &ToNaviCtrl;
 
unsigned char SPITransferCompleted;
unsigned char SPITransferCompleted, SPI_ChkSum;
#ifdef USE_SPI_COMMUNICATION
//------------------------------------------------------
void SPI_MasterInit(void)
23,6 → 23,12
ToNaviCtrl.Sync1 = 0x81;
ToNaviCtrl.Sync2 = 0x55;
ToNaviCtrl.Comp = 12;
ToNaviCtrl.IntegralNick = 12345;
ToNaviCtrl.IntegralRoll = 56789;
ToNaviCtrl.StickNick = 100;
ToNaviCtrl.StickRoll = 150;//(char) StickRoll;
ToNaviCtrl.StickGier = 200;//(char) StickGier;
}
 
33,6 → 39,7
if (!SPITransferCompleted) return;
SLAVE_SELECT_PORT &= ~(1 << SPI_SLAVE_SELECT); // SelectSlave
SPITransferCompleted = 0;
UpdateSPI_Buffer(); // update buffer
SPI_BufferIndex = 1;
45,6 → 52,7
*/
//----
SPDR = ToNaviCtrl.Sync1; // Start transmission
ToNaviCtrl.ChkSum = ToNaviCtrl.Sync1;
}
 
//------------------------------------------------------
57,6 → 65,7
if (SPI_BufferIndex < sizeof(FromNaviCtrl))
{
SPI_Buffer[SPI_BufferIndex]= SPDR; // get data
// if (SPI_BufferIndex < 32 ) DebugOut.Analog[26+SPI_BufferIndex] = SPI_Buffer[SPI_BufferIndex];
//if(SPDR!= 0x00) DebugOut.Analog[19]++; ;
65,9 → 74,13
if (SPI_BufferIndex < sizeof(ToNaviCtrl))
{
asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop");
asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop");
SLAVE_SELECT_PORT &= ~(1 << SPI_SLAVE_SELECT); // SelectSlave
asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop");
asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop");
SPDR = Ptr_buffer[SPI_BufferIndex];
ToNaviCtrl.ChkSum += Ptr_buffer[SPI_BufferIndex];
}
else
{
83,7 → 96,7
//------------------------------------------------------
void UpdateSPI_Buffer(void)
{
static unsigned char i =0;
/*static unsigned char i =0;
cli();
ToNaviCtrl.Comp = SPI_PROTOCOL_COMP;
ToNaviCtrl.IntegralNick = (int) (IntegralNick >> 4);
92,6 → 105,7
ToNaviCtrl.StickRoll = 5;//(char) StickRoll;
ToNaviCtrl.StickGier = 6;//(char) StickGier;
sei();
*/
}
 
#endif
/trunk/spi.h
54,6 → 54,7
int IntegralNick;
int IntegralRoll;
char StickNick,StickRoll,StickGier;
unsigned char ChkSum;
};
 
struct str_FromNaviCtrl