Rev 2183 | Rev 2309 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2183 | Rev 2230 | ||
---|---|---|---|
Line 2... | Line 2... | ||
2 | // + www.MikroKopter.com |
2 | // + www.MikroKopter.com |
3 | // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
3 | // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
4 | // + Software Nutzungsbedingungen (english version: see below) |
4 | // + Software Nutzungsbedingungen (english version: see below) |
5 | // + der Fa. HiSystems GmbH, Flachsmeerstrasse 2, 26802 Moormerland - nachfolgend Lizenzgeber genannt - |
5 | // + der Fa. HiSystems GmbH, Flachsmeerstrasse 2, 26802 Moormerland - nachfolgend Lizenzgeber genannt - |
6 | // + Der Lizenzgeber räumt dem Kunden ein nicht-ausschließliches, zeitlich und räumlich* unbeschränktes Recht ein, die im den |
6 | // + Der Lizenzgeber räumt dem Kunden ein nicht-ausschließliches, zeitlich und räumlich* unbeschränktes Recht ein, die im den |
7 | // + Mikrocontroller verwendete Firmware für die Hardware Flight-Ctrl, Navi-Ctrl, BL-Ctrl, MK3Mag & PC-Programm MikroKopter-Tool |
7 | // + Mikrocontroller verwendete Firmware für die Hardware Flight-Ctrl, Navi-Ctrl, BL-Ctrl, MK3Mag & PC-Programm MikroKopter-Tool |
8 | // + - nachfolgend Software genannt - nur für private Zwecke zu nutzen. |
8 | // + - nachfolgend Software genannt - nur für private Zwecke zu nutzen. |
9 | // + Der Einsatz dieser Software ist nur auf oder mit Produkten des Lizenzgebers zulässig. |
9 | // + Der Einsatz dieser Software ist nur auf oder mit Produkten des Lizenzgebers zulässig. |
10 | // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
10 | // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
11 | // + Die vom Lizenzgeber gelieferte Software ist urheberrechtlich geschützt. Alle Rechte an der Software sowie an sonstigen im |
11 | // + Die vom Lizenzgeber gelieferte Software ist urheberrechtlich geschützt. Alle Rechte an der Software sowie an sonstigen im |
12 | // + Rahmen der Vertragsanbahnung und Vertragsdurchführung überlassenen Unterlagen stehen im Verhältnis der Vertragspartner ausschließlich dem Lizenzgeber zu. |
12 | // + Rahmen der Vertragsanbahnung und Vertragsdurchführung überlassenen Unterlagen stehen im Verhältnis der Vertragspartner ausschließlich dem Lizenzgeber zu. |
13 | // + Die in der Software enthaltenen Copyright-Vermerke, Markenzeichen, andere Rechtsvorbehalte, Seriennummern sowie |
13 | // + Die in der Software enthaltenen Copyright-Vermerke, Markenzeichen, andere Rechtsvorbehalte, Seriennummern sowie |
14 | // + sonstige der Programmidentifikation dienenden Merkmale dürfen vom Kunden nicht verändert oder unkenntlich gemacht werden. |
14 | // + sonstige der Programmidentifikation dienenden Merkmale dürfen vom Kunden nicht verändert oder unkenntlich gemacht werden. |
15 | // + Der Kunde trifft angemessene Vorkehrungen für den sicheren Einsatz der Software. Er wird die Software gründlich auf deren |
15 | // + Der Kunde trifft angemessene Vorkehrungen für den sicheren Einsatz der Software. Er wird die Software gründlich auf deren |
16 | // + Verwendbarkeit zu dem von ihm beabsichtigten Zweck testen, bevor er diese operativ einsetzt. |
16 | // + Verwendbarkeit zu dem von ihm beabsichtigten Zweck testen, bevor er diese operativ einsetzt. |
17 | // + Die Haftung des Lizenzgebers wird - soweit gesetzlich zulässig - begrenzt in Höhe des typischen und vorhersehbaren |
17 | // + Die Haftung des Lizenzgebers wird - soweit gesetzlich zulässig - begrenzt in Höhe des typischen und vorhersehbaren |
18 | // + Schadens. Die gesetzliche Haftung bei Personenschäden und nach dem Produkthaftungsgesetz bleibt unberührt. Dem Lizenzgeber steht jedoch der Einwand |
18 | // + Schadens. Die gesetzliche Haftung bei Personenschäden und nach dem Produkthaftungsgesetz bleibt unberührt. Dem Lizenzgeber steht jedoch der Einwand |
19 | // + des Mitverschuldens offen. |
19 | // + des Mitverschuldens offen. |
20 | // + Der Kunde trifft angemessene Vorkehrungen für den Fall, dass die Software ganz oder teilweise nicht ordnungsgemäß arbeitet. |
20 | // + Der Kunde trifft angemessene Vorkehrungen für den Fall, dass die Software ganz oder teilweise nicht ordnungsgemäß arbeitet. |
21 | // + Er wird die Software gründlich auf deren Verwendbarkeit zu dem von ihm beabsichtigten Zweck testen, bevor er diese operativ einsetzt. |
21 | // + Er wird die Software gründlich auf deren Verwendbarkeit zu dem von ihm beabsichtigten Zweck testen, bevor er diese operativ einsetzt. |
22 | // + Der Kunde wird er seine Daten vor Einsatz der Software nach dem Stand der Technik sichern. |
22 | // + Der Kunde wird er seine Daten vor Einsatz der Software nach dem Stand der Technik sichern. |
23 | // + Der Kunde ist darüber unterrichtet, dass der Lizenzgeber seine Daten im zur Vertragsdurchführung erforderlichen Umfang |
23 | // + Der Kunde ist darüber unterrichtet, dass der Lizenzgeber seine Daten im zur Vertragsdurchführung erforderlichen Umfang |
Line 27... | Line 27... | ||
27 | // + Hinweis: Informationen über erweiterte Nutzungsrechte (wie z.B. Nutzung für nicht-private Zwecke) sind auf Anfrage per Email an info(@)hisystems.de verfügbar. |
27 | // + Hinweis: Informationen über erweiterte Nutzungsrechte (wie z.B. Nutzung für nicht-private Zwecke) sind auf Anfrage per Email an info(@)hisystems.de verfügbar. |
28 | // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
28 | // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
29 | // + Software LICENSING TERMS |
29 | // + Software LICENSING TERMS |
30 | // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
30 | // ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
31 | // + of HiSystems GmbH, Flachsmeerstrasse 2, 26802 Moormerland, Germany - the Licensor - |
31 | // + of HiSystems GmbH, Flachsmeerstrasse 2, 26802 Moormerland, Germany - the Licensor - |
32 | // + The Licensor grants the customer a non-exclusive license to use the microcontroller firmware of the Flight-Ctrl, Navi-Ctrl, BL-Ctrl, and MK3Mag hardware |
32 | // + The Licensor grants the customer a non-exclusive license to use the microcontroller firmware of the Flight-Ctrl, Navi-Ctrl, BL-Ctrl, and MK3Mag hardware |
33 | // + (the Software) exclusively for private purposes. The License is unrestricted with respect to time and territory*. |
33 | // + (the Software) exclusively for private purposes. The License is unrestricted with respect to time and territory*. |
34 | // + The Software may only be used with the Licensor's products. |
34 | // + The Software may only be used with the Licensor's products. |
35 | // + The Software provided by the Licensor is protected by copyright. With respect to the relationship between the parties to this |
35 | // + The Software provided by the Licensor is protected by copyright. With respect to the relationship between the parties to this |
36 | // + agreement, all rights pertaining to the Software and other documents provided during the preparation and execution of this |
36 | // + agreement, all rights pertaining to the Software and other documents provided during the preparation and execution of this |
37 | // + agreement shall be the property of the Licensor. |
37 | // + agreement shall be the property of the Licensor. |
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 | }; |
148 | 148 | ||
149 | 149 | ||
150 | //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
150 | //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
151 | //++ Sende-Part der Datenübertragung |
151 | //++ Sende-Part der Datenübertragung |
152 | //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
152 | //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
153 | ISR(USART0_TX_vect) |
153 | ISR(USART0_TX_vect) |
154 | { |
154 | { |
Line 177... | Line 177... | ||
177 | static unsigned int crc; |
177 | static unsigned int crc; |
178 | static unsigned char crc1,crc2,buf_ptr; |
178 | static unsigned char crc1,crc2,buf_ptr; |
179 | static unsigned char UartState = 0; |
179 | static unsigned char UartState = 0; |
180 | unsigned char CrcOkay = 0; |
180 | unsigned char CrcOkay = 0; |
Line 181... | Line 181... | ||
181 | 181 | ||
182 | if (ReceiverUpdateModeActive == 1) { UDR1 = UDR0; return; } // 1 = Update |
182 | if (ReceiverUpdateModeActive == 1) { UDR1 = UDR0; return; } // 1 = Update |
Line 183... | Line 183... | ||
183 | if (ReceiverUpdateModeActive == 2) { RxdBuffer[0] = UDR0; return; } // 2 = JetiBox-Simulation |
183 | if (ReceiverUpdateModeActive == 2) { RxdBuffer[0] = UDR0; return; } // 2 = JetiBox-Simulation |
Line 184... | Line 184... | ||
184 | 184 | ||
185 | SioTmp = UDR0; |
185 | SioTmp = UDR0; |
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 |