Rev 2377 | Rev 2390 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2377 | Rev 2386 | ||
---|---|---|---|
Line 61... | Line 61... | ||
61 | SPI_RxDataValid = 0; |
61 | SPI_RxDataValid = 0; |
Line 62... | Line 62... | ||
62 | 62 | ||
Line 63... | Line 63... | ||
63 | } |
63 | } |
64 | 64 | ||
65 | //------------------------------------------------------ |
65 | //------------------------------------------------------ |
66 | void SPI_StartTransmitPacket(void) |
66 | unsigned char SPI_StartTransmitPacket(void) |
67 | { |
67 | { |
68 | if (!SPITransferCompleted) return; |
68 | if(!SPITransferCompleted) return(0); |
Line 69... | Line 69... | ||
69 | SLAVE_SELECT_PORT &= ~(1 << SPI_SLAVE_SELECT); // SelectSlave |
69 | SLAVE_SELECT_PORT &= ~(1 << SPI_SLAVE_SELECT); // SelectSlave |
70 | SPI_TX_Buffer = (unsigned char *) &ToNaviCtrl; |
70 | SPI_TX_Buffer = (unsigned char *) &ToNaviCtrl; |
Line 75... | Line 75... | ||
75 | SPITransferCompleted = 0; |
75 | SPITransferCompleted = 0; |
76 | UpdateSPI_Buffer(); // update buffer |
76 | UpdateSPI_Buffer(); // update buffer |
77 | SPI_BufferIndex = 1; |
77 | SPI_BufferIndex = 1; |
78 | ToNaviCtrl.Chksum = ToNaviCtrl.Sync1; |
78 | ToNaviCtrl.Chksum = ToNaviCtrl.Sync1; |
79 | SPDR = ToNaviCtrl.Sync1; // Start transmission |
79 | SPDR = ToNaviCtrl.Sync1; // Start transmission |
- | 80 | return(1); |
|
80 | } |
81 | } |
Line 81... | Line 82... | ||
81 | 82 | ||
82 | //------------------------------------------------------ |
83 | //------------------------------------------------------ |
83 | //SIGNAL(SIG_SPI) |
84 | //SIGNAL(SIG_SPI) |
Line 87... | Line 88... | ||
87 | unsigned char rxdata; |
88 | unsigned char rxdata; |
88 | static unsigned char rxchksum; |
89 | static unsigned char rxchksum; |
Line 89... | Line 90... | ||
89 | 90 | ||
90 | if (SPITransferCompleted) return; |
91 | if (SPITransferCompleted) return; |
91 | if (!(SPSR & (1 << SPIF))) return; |
92 | if (!(SPSR & (1 << SPIF))) return; |
92 | SendSPI = SPI_BYTEGAP; |
93 | BytegapSPI = SPI_BYTEGAP; |
93 | // _delay_us(30); |
94 | // _delay_us(30); |
Line 94... | Line 95... | ||
94 | SLAVE_SELECT_PORT |= (1 << SPI_SLAVE_SELECT); // DeselectSlave |
95 | SLAVE_SELECT_PORT |= (1 << SPI_SLAVE_SELECT); // DeselectSlave |
95 | 96 | ||
Line 170... | Line 171... | ||
170 | ToNaviCtrl.Param.Byte[7] = Parameter_UserParam8; |
171 | ToNaviCtrl.Param.Byte[7] = Parameter_UserParam8; |
171 | ToNaviCtrl.Param.Byte[8] = FC_StatusFlags; |
172 | ToNaviCtrl.Param.Byte[8] = FC_StatusFlags; |
172 | //if(FC_StatusFlags2 & FC_STATUS2_WAIT_FOR_TAKEOFF) ToNaviCtrl.Param.Byte[8] &= ~FC_STATUS_FLY; |
173 | //if(FC_StatusFlags2 & FC_STATUS2_WAIT_FOR_TAKEOFF) ToNaviCtrl.Param.Byte[8] &= ~FC_STATUS_FLY; |
173 | FC_StatusFlags &= ~(FC_STATUS_CALIBRATE | FC_STATUS_START); |
174 | FC_StatusFlags &= ~(FC_STATUS_CALIBRATE | FC_STATUS_START); |
174 | ToNaviCtrl.Param.Byte[9] = ActiveParamSet; |
175 | ToNaviCtrl.Param.Byte[9] = ActiveParamSet; |
175 | ToNaviCtrl.Param.Byte[10] = EE_Parameter.ComingHomeAltitude; |
176 | ToNaviCtrl.Param.Byte[10] = (unsigned char) UBat; // 0.1V |
176 | ToNaviCtrl.Param.Byte[11] = FC_StatusFlags2; |
177 | ToNaviCtrl.Param.Byte[11] = FC_StatusFlags2; |
177 | if(!(PORTC & (1<<PORTC2))) FC_StatusFlags2 &= ~FC_STATUS2_OUT1_ACTIVE; // Out1 (J16) |
178 | if(!(PORTC & (1<<PORTC2))) FC_StatusFlags2 &= ~FC_STATUS2_OUT1_ACTIVE; // Out1 (J16) |
178 | break; |
179 | break; |
179 | case SPI_FCCMD_BL_ACCU: |
180 | case SPI_FCCMD_BL_ACCU: |
180 | ToNaviCtrl.Param.Int[0] = Capacity.ActualCurrent; // 0.1A |
181 | ToNaviCtrl.Param.Int[0] = Capacity.ActualCurrent; // 0.1A |
181 | ToNaviCtrl.Param.Int[1] = Capacity.UsedCapacity; // mAh |
182 | ToNaviCtrl.Param.Int[1] = Capacity.UsedCapacity; // mAh |
182 | ToNaviCtrl.Param.Byte[4] = (unsigned char) UBat; // 0.1V |
- | |
183 | ToNaviCtrl.Param.Byte[5] = GetChannelValue(EE_Parameter.NaviGpsModeChannel); // GPS-Mode control |
183 | ToNaviCtrl.Param.Byte[4] = GetChannelValue(EE_Parameter.NaviGpsModeChannel); // GPS-Mode control |
184 | ToNaviCtrl.Param.Byte[6] = VarioCharacter; |
184 | ToNaviCtrl.Param.Byte[5] = VarioCharacter; |
185 | ToNaviCtrl.Param.Byte[7] = motorindex; |
185 | ToNaviCtrl.Param.Byte[6] = motorindex; |
- | 186 | ToNaviCtrl.Param.Byte[7] = Motor[motorindex].Version; |
|
186 | ToNaviCtrl.Param.Byte[8] = Motor[motorindex].MaxPWM; |
187 | ToNaviCtrl.Param.Byte[8] = Motor[motorindex].MaxPWM; |
187 | ToNaviCtrl.Param.Byte[9] = Motor[motorindex].State; |
188 | ToNaviCtrl.Param.Byte[9] = Motor[motorindex].State; |
188 | ToNaviCtrl.Param.Byte[10] = Motor[motorindex].Temperature; |
189 | ToNaviCtrl.Param.Byte[10] = Motor[motorindex].Temperature; |
189 | ToNaviCtrl.Param.Byte[11] = Motor[motorindex].Current; |
190 | ToNaviCtrl.Param.Byte[11] = Motor[motorindex].Current; |
190 | if(Mixer.Motor[++motorindex][0] == 0) // next motor is not used ? |
191 | if(Mixer.Motor[++motorindex][0] == 0) // next motor is not used ? |
Line 216... | Line 217... | ||
216 | ToNaviCtrl.Param.Byte[1] = ToNC_SpeakHoTT; |
217 | ToNaviCtrl.Param.Byte[1] = ToNC_SpeakHoTT; |
217 | #else |
218 | #else |
218 | ToNaviCtrl.Param.Byte[1] = 0; |
219 | ToNaviCtrl.Param.Byte[1] = 0; |
219 | #endif |
220 | #endif |
220 | ToNaviCtrl.Param.Byte[2] = EE_Parameter.LandingSpeed; |
221 | ToNaviCtrl.Param.Byte[2] = EE_Parameter.LandingSpeed; |
- | 222 | ToNaviCtrl.Param.Byte[3] = EE_Parameter.ComingHomeAltitude; |
|
221 | break; |
223 | break; |
222 | case SPI_FCCMD_STICK: |
224 | case SPI_FCCMD_STICK: |
223 | cli(); |
225 | cli(); |
224 | tmp = PPM_in[EE_Parameter.Kanalbelegung[K_GAS]]; if(tmp > 127) tmp = 127; else if(tmp < -127) tmp = -127; |
226 | tmp = PPM_in[EE_Parameter.Kanalbelegung[K_GAS]]; if(tmp > 127) tmp = 127; else if(tmp < -127) tmp = -127; |
225 | ToNaviCtrl.Param.Byte[0] = (char) tmp; |
227 | ToNaviCtrl.Param.Byte[0] = (char) tmp; |