Subversion Repositories FlightCtrl

Rev

Rev 720 | Rev 744 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 720 Rev 723
Line 23... Line 23...
23
{
23
{
24
  DDR_SPI |= (1<<DD_MOSI)|(1<<DD_SCK);    // Set MOSI and SCK output, all others input 
24
  DDR_SPI |= (1<<DD_MOSI)|(1<<DD_SCK);    // Set MOSI and SCK output, all others input 
25
  SLAVE_SELECT_DDR_PORT |= (1 << SPI_SLAVE_SELECT);
25
  SLAVE_SELECT_DDR_PORT |= (1 << SPI_SLAVE_SELECT);
Line 26... Line 26...
26
   
26
   
27
  SPCR = (1<<SPE)|(1<<MSTR)|(1<<SPR1)|(0<<SPR0)|(0<<SPIE);   // Enable SPI, Master, set clock rate fck/64 
27
  SPCR = (1<<SPE)|(1<<MSTR)|(1<<SPR1)|(0<<SPR0)|(0<<SPIE);   // Enable SPI, Master, set clock rate fck/64 
Line 28... Line 28...
28
  SPSR = 0;  // SPI2X
28
  SPSR = 0;//(1<<SPI2X);
29
 
29
 
Line 30... Line 30...
30
  SLAVE_SELECT_PORT |=  (1 << SPI_SLAVE_SELECT);
30
  SLAVE_SELECT_PORT |=  (1 << SPI_SLAVE_SELECT);
Line 48... Line 48...
48
//------------------------------------------------------
48
//------------------------------------------------------
49
void SPI_StartTransmitPacket(unsigned char command)
49
void SPI_StartTransmitPacket(unsigned char command)
50
{
50
{
51
   //if ((SLAVE_SELECT_PORT & (1 << SPI_SLAVE_SELECT)) == 0) return;    // transfer of prev. packet not completed
51
   //if ((SLAVE_SELECT_PORT & (1 << SPI_SLAVE_SELECT)) == 0) return;    // transfer of prev. packet not completed
52
   if (!SPITransferCompleted) return;
52
   if (!SPITransferCompleted) return;
53
   //if (!(SPSR & (1 << SPIF))) return;
-
 
54
   _delay_us(30);
53
//   _delay_us(30); 
Line 55... Line 54...
55
   
54
   
Line 56... Line 55...
56
   SLAVE_SELECT_PORT &=  ~(1 << SPI_SLAVE_SELECT);  // SelectSlave
55
   SLAVE_SELECT_PORT &=  ~(1 << SPI_SLAVE_SELECT);  // SelectSlave
57
   
56
   
Line 64... Line 63...
64
         case SPI_CMD_VALUE: SPI_TX_Buffer = (unsigned char *) &ToNaviCtrl_Value;
63
         case SPI_CMD_VALUE: SPI_TX_Buffer = (unsigned char *) &ToNaviCtrl_Value;
65
                             ToNaviCtrl_Chksum = (unsigned char *) &ToNaviCtrl_Value.Chksum;
64
                             ToNaviCtrl_Chksum = (unsigned char *) &ToNaviCtrl_Value.Chksum;
66
            break;
65
            break;
Line 67... Line 66...
67
 
66
 
68
   }
67
   }
Line 69... Line 68...
69
   
68
   
70
   
69
   
71
   SPITransferCompleted = 0;
70
   SPITransferCompleted = 0;
72
   UpdateSPI_Buffer();                              // update buffer
71
   UpdateSPI_Buffer();                              // update buffer
Line 91... Line 90...
91
   unsigned char rxdata;
90
   unsigned char rxdata;
92
   static unsigned char rxchksum;
91
   static unsigned char rxchksum;
Line 93... Line 92...
93
   
92
   
94
   if (SPITransferCompleted) return;
93
   if (SPITransferCompleted) return;
-
 
94
   if (!(SPSR & (1 << SPIF))) return;
Line 95... Line 95...
95
   if (!(SPSR & (1 << SPIF))) return;
95
  SendSPI = 4;
96
   
-
 
97
  _delay_us(30);
96
   
Line 98... Line 97...
98
   
97
//   _delay_us(30); 
99
  SLAVE_SELECT_PORT |=  (1 << SPI_SLAVE_SELECT);   // DeselectSlave
98
  SLAVE_SELECT_PORT |=  (1 << SPI_SLAVE_SELECT);   // DeselectSlave
100
 
99
 
Line 184... Line 183...
184
    GPS_Nick = FromNaviCtrl_Value.GPS_Nick;
183
    GPS_Nick = FromNaviCtrl_Value.GPS_Nick;
185
    GPS_Roll = FromNaviCtrl_Value.GPS_Roll;
184
    GPS_Roll = FromNaviCtrl_Value.GPS_Roll;
186
    KompassValue = FromNaviCtrl_Value.CompassValue;
185
    KompassValue = FromNaviCtrl_Value.CompassValue;
187
    KompassRichtung = ((540 + KompassValue - KompassStartwert) % 360) - 180;
186
    KompassRichtung = ((540 + KompassValue - KompassStartwert) % 360) - 180;
Line 188... Line 187...
188
 
187
 
189
    if (FromNaviCtrl_Value.BeepTime != 0) beeptime = FromNaviCtrl_Value.BeepTime;
188
    if (FromNaviCtrl_Value.BeepTime > beeptime) beeptime = FromNaviCtrl_Value.BeepTime;
190
  }
189
  }
191
  else
190
  else
192
  {
191
  {
193
    KompassValue = 0;
192
    KompassValue = 0;