Rev 2183 | Rev 2309 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2183 | Rev 2230 | ||
---|---|---|---|
Line 126... | Line 126... | ||
126 | "Gyro Compass ", |
126 | "Gyro Compass ", |
127 | "Motor 1 ", |
127 | "Motor 1 ", |
128 | "Motor 2 ", |
128 | "Motor 2 ", |
129 | "Motor 3 ", |
129 | "Motor 3 ", |
130 | "Motor 4 ", //15 |
130 | "Motor 4 ", //15 |
131 | "16 Vario ", |
131 | "16 ", |
132 | "17 HightDeviatio", |
132 | "17 ", |
133 | "18 I Gas ", |
133 | "18 ", |
134 | "19 ACC Gas ", |
134 | "19 ", |
135 | "20 Vario Gas ", //20 servo |
135 | "Servo ", //20 |
136 | "Hovergas ", |
136 | "Hovergas ", |
137 | "22 Setp.trimm ", //"Current [0.1A] ", |
137 | "Current [0.1A] ", |
138 | "Capacity [mAh] ", |
138 | "Capacity [mAh] ", |
139 | "Height Setpoint ", |
139 | "Height Setpoint ", |
140 | "25 ACC-Integral ", //25 |
140 | "25 ", //25 |
141 | "26 Gasreduction ", //"26 CPU OverLoad ", |
141 | "26 ", //"26 CPU OverLoad ", |
142 | "27 fileter ",//"Compass Setpoint", |
142 | "Compass Setpoint", |
143 | "I2C-Error ", |
143 | "I2C-Error ", |
144 | "29 I ",// "BL Limit ", |
144 | "BL Limit ", |
145 | "GPS_Nick ", //30 |
145 | "GPS_Nick ", //30 |
146 | "GPS_Roll " |
146 | "GPS_Roll " |
147 | }; |
147 | }; |
Line 329... | Line 329... | ||
329 | 329 | ||
330 | // -------------------------------------------------------------------------- |
330 | // -------------------------------------------------------------------------- |
331 | void Decode64(void) // die daten werden im rx buffer dekodiert, das geht nur, weil aus 4 byte immer 3 gemacht werden. |
331 | void Decode64(void) // die daten werden im rx buffer dekodiert, das geht nur, weil aus 4 byte immer 3 gemacht werden. |
332 | { |
332 | { |
- | 333 | unsigned char a,b,c,d; |
|
333 | unsigned char a,b,c,d; |
334 | unsigned char x,y,z; |
334 | unsigned char ptrIn = 3; // start at begin of data block |
335 | unsigned char ptrIn = 3; // start at begin of data block |
335 | unsigned char ptrOut = 3; |
336 | unsigned char ptrOut = 3; |
Line 336... | Line -... | ||
336 | unsigned char len = AnzahlEmpfangsBytes - 6; // von der Gesamtbytezahl eines Frames gehen 3 Bytes des Headers ('#',Addr, Cmd) und 3 Bytes des Footers (CRC1, CRC2, '\r') ab. |
- | |
337 | 337 | unsigned char len = AnzahlEmpfangsBytes - 6; // von der Gesamtbytezahl eines Frames gehen 3 Bytes des Headers ('#',Addr, Cmd) und 3 Bytes des Footers (CRC1, CRC2, '\r') ab. |
|
338 | len/=4; |
338 | |
339 | while(len--) |
339 | while(len) |
340 | { |
340 | { |
341 | a = RxdBuffer[ptrIn++] - '='; |
341 | a = RxdBuffer[ptrIn++] - '='; |
342 | b = RxdBuffer[ptrIn++] - '='; |
342 | b = RxdBuffer[ptrIn++] - '='; |
Line 343... | Line 343... | ||
343 | c = RxdBuffer[ptrIn++] - '='; |
343 | c = RxdBuffer[ptrIn++] - '='; |
344 | d = RxdBuffer[ptrIn++] - '='; |
344 | d = RxdBuffer[ptrIn++] - '='; |
345 | 345 | ||
- | 346 | x = (a << 2) | (b >> 4); |
|
- | 347 | y = ((b & 0x0f) << 4) | (c >> 2); |
|
- | 348 | z = ((c & 0x03) << 6) | d; |
|
- | 349 | ||
346 | RxdBuffer[ptrOut++] = (a << 2) | (b >> 4); |
350 | if(len--) RxdBuffer[ptrOut++] = x; else break; |
347 | RxdBuffer[ptrOut++] = ((b & 0x0f) << 4) | (c >> 2); |
351 | if(len--) RxdBuffer[ptrOut++] = y; else break; |
348 | RxdBuffer[ptrOut++] = ((c & 0x03) << 6) | d; |
352 | if(len--) RxdBuffer[ptrOut++] = z; else break; |
Line 349... | Line 353... | ||
349 | } |
353 | } |
Line 744... | Line 748... | ||
744 | if(((DebugDataIntervall>0 && CheckDelay(Debug_Timer)) || DebugDataAnforderung) && UebertragungAbgeschlossen) |
748 | if(((DebugDataIntervall>0 && CheckDelay(Debug_Timer)) || DebugDataAnforderung) && UebertragungAbgeschlossen) |
745 | { |
749 | { |
746 | CopyDebugValues(); |
750 | CopyDebugValues(); |
747 | SendOutData('D', FC_ADDRESS, 1, (unsigned char *) &DebugOut,sizeof(DebugOut)); |
751 | SendOutData('D', FC_ADDRESS, 1, (unsigned char *) &DebugOut,sizeof(DebugOut)); |
748 | DebugDataAnforderung = 0; |
752 | DebugDataAnforderung = 0; |
749 | DebugOut.Analog[16] = 0; |
- | |
750 | if(DebugDataIntervall>0) Debug_Timer = SetDelay(DebugDataIntervall); |
753 | if(DebugDataIntervall>0) Debug_Timer = SetDelay(DebugDataIntervall); |
751 | - | ||
752 | } |
754 | } |
753 | if(Intervall3D > 0 && CheckDelay(Timer3D) && UebertragungAbgeschlossen) |
755 | if(Intervall3D > 0 && CheckDelay(Timer3D) && UebertragungAbgeschlossen) |
754 | { |
756 | { |
755 | Data3D.Winkel[0] = (int) (IntegralNick / (EE_Parameter.GyroAccFaktor * 4)); // etwa in 0.1 Grad |
757 | Data3D.Winkel[0] = (int) (IntegralNick / (EE_Parameter.GyroAccFaktor * 4)); // etwa in 0.1 Grad |
756 | Data3D.Winkel[1] = (int) (IntegralRoll / (EE_Parameter.GyroAccFaktor * 4)); // etwa in 0.1 Grad |
758 | Data3D.Winkel[1] = (int) (IntegralRoll / (EE_Parameter.GyroAccFaktor * 4)); // etwa in 0.1 Grad |