Subversion Repositories FlightCtrl

Rev

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

Rev 1960 Rev 1963
Line 1... Line 1...
1
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2
// + Copyright (c) 04.2007 Holger Buss
2
// + Copyright (c) 04.2007 Holger Buss
3
// + Nur für den privaten Gebrauch
3
// + Nur f�r den privaten Gebrauch
4
// + www.MikroKopter.com
4
// + www.MikroKopter.com
5
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
5
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
6
// + Es gilt für das gesamte Projekt (Hardware, Software, Binärfiles, Sourcecode und Dokumentation),
6
// + Es gilt f�r das gesamte Projekt (Hardware, Software, Bin�rfiles, Sourcecode und Dokumentation),
7
// + dass eine Nutzung (auch auszugsweise) nur für den privaten und nicht-kommerziellen Gebrauch zulässig ist.
7
// + dass eine Nutzung (auch auszugsweise) nur f�r den privaten und nicht-kommerziellen Gebrauch zul�ssig ist.
8
// + Sollten direkte oder indirekte kommerzielle Absichten verfolgt werden, ist mit uns (info@mikrokopter.de) Kontakt
8
// + Sollten direkte oder indirekte kommerzielle Absichten verfolgt werden, ist mit uns (info@mikrokopter.de) Kontakt
9
// + bzgl. der Nutzungsbedingungen aufzunehmen.
9
// + bzgl. der Nutzungsbedingungen aufzunehmen.
10
// + Eine kommerzielle Nutzung ist z.B.Verkauf von MikroKoptern, Bestückung und Verkauf von Platinen oder Bausätzen,
10
// + Eine kommerzielle Nutzung ist z.B.Verkauf von MikroKoptern, Best�ckung und Verkauf von Platinen oder Baus�tzen,
11
// + Verkauf von Luftbildaufnahmen, usw.
11
// + Verkauf von Luftbildaufnahmen, usw.
12
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
12
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
13
// + Werden Teile des Quellcodes (mit oder ohne Modifikation) weiterverwendet oder veröffentlicht,
13
// + Werden Teile des Quellcodes (mit oder ohne Modifikation) weiterverwendet oder ver�ffentlicht,
14
// + unterliegen sie auch diesen Nutzungsbedingungen und diese Nutzungsbedingungen incl. Copyright müssen dann beiliegen
14
// + unterliegen sie auch diesen Nutzungsbedingungen und diese Nutzungsbedingungen incl. Copyright m�ssen dann beiliegen
15
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
15
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
16
// + Sollte die Software (auch auszugesweise) oder sonstige Informationen des MikroKopter-Projekts
16
// + Sollte die Software (auch auszugesweise) oder sonstige Informationen des MikroKopter-Projekts
17
// + auf anderen Webseiten oder Medien veröffentlicht werden, muss unsere Webseite "http://www.mikrokopter.de"
17
// + auf anderen Webseiten oder Medien ver�ffentlicht werden, muss unsere Webseite "http://www.mikrokopter.de"
18
// + eindeutig als Ursprung verlinkt und genannt werden
18
// + eindeutig als Ursprung verlinkt und genannt werden
19
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
19
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
20
// + Keine Gewähr auf Fehlerfreiheit, Vollständigkeit oder Funktion
20
// + Keine Gew�hr auf Fehlerfreiheit, Vollst�ndigkeit oder Funktion
21
// + Benutzung auf eigene Gefahr
21
// + Benutzung auf eigene Gefahr
22
// + Wir übernehmen keinerlei Haftung für direkte oder indirekte Personen- oder Sachschäden
22
// + Wir �bernehmen keinerlei Haftung f�r direkte oder indirekte Personen- oder Sachsch�den
23
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
23
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
24
// + Die Portierung der Software (oder Teile davon) auf andere Systeme (ausser der Hardware von www.mikrokopter.de) ist nur
24
// + Die Portierung der Software (oder Teile davon) auf andere Systeme (ausser der Hardware von www.mikrokopter.de) ist nur
25
// + mit unserer Zustimmung zulässig
25
// + mit unserer Zustimmung zul�ssig
26
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
26
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
27
// + Die Funktion printf_P() unterliegt ihrer eigenen Lizenz und ist hiervon nicht betroffen
27
// + Die Funktion printf_P() unterliegt ihrer eigenen Lizenz und ist hiervon nicht betroffen
28
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
28
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
29
// + Redistributions of source code (with or without modifications) must retain the above copyright notice,
29
// + Redistributions of source code (with or without modifications) must retain the above copyright notice,
30
// + this list of conditions and the following disclaimer.
30
// + this list of conditions and the following disclaimer.
Line 589... Line 589...
589
                switch (rxd_buffer[2]) {
589
                switch (rxd_buffer[2]) {
590
                case 'a':// request for labels of the analog debug outputs
590
                case 'a':// request for labels of the analog debug outputs
591
                        request_DebugLabel = pRxData[0];
591
                        request_DebugLabel = pRxData[0];
592
                        if (request_DebugLabel > 31)
592
                        if (request_DebugLabel > 31)
593
                                request_DebugLabel = 31;
593
                                request_DebugLabel = 31;
594
                        externalControlActive = 255;
-
 
595
                        break;
594
                        break;
Line 596... Line 595...
596
 
595
 
597
                case 'b': // submit extern control
596
                case 'b': // submit extern control
598
                        memcpy(&externalControl, (uint8_t*) pRxData, sizeof(externalControl));
597
                        memcpy(&externalControl, (uint8_t*) pRxData, sizeof(externalControl));
599
                        ConfirmFrame = externalControl.frame;
598
                        ConfirmFrame = externalControl.frame;
600
                        externalControlActive = 255;
599
                        externalControlActive = 255;
Line 601... Line 600...
601
                        break;
600
                        break;
602
 
-
 
603
                case 'h':// request for display columns
601
 
604
                        externalControlActive = 255;
602
                case 'h':// request for display columns
605
                        RemoteKeys |= pRxData[0];
603
                        RemoteKeys |= pRxData[0];
606
                        if (RemoteKeys)
604
                        if (RemoteKeys)
607
                                DisplayLine = 0;
605
                                DisplayLine = 0;
Line 608... Line 606...
608
                        request_Display = TRUE;
606
                        request_Display = TRUE;
609
                        break;
-
 
610
 
607
                        break;
611
                case 'l':// request for display columns
608
 
612
                        externalControlActive = 255;
609
                case 'l':// request for display columns
Line 613... Line 610...
613
                        MenuItem = pRxData[0];
610
                        MenuItem = pRxData[0];
Line 649... Line 646...
649
        RxDataLen = 0;
646
        RxDataLen = 0;
650
        rxd_buffer_locked = FALSE;
647
        rxd_buffer_locked = FALSE;
651
}
648
}
Line 652... Line 649...
652
 
649
 
653
/************************************************************************/
650
/************************************************************************/
654
/* Routine für die Serielle Ausgabe                                     */
651
/* Routine f�r die Serielle Ausgabe                                     */
655
/************************************************************************/
652
/************************************************************************/
656
int16_t uart_putchar(int8_t c) {
653
int16_t uart_putchar(int8_t c) {
657
        if (c == '\n')
654
        if (c == '\n')
658
                uart_putchar('\r');
655
                uart_putchar('\r');
Line 689... Line 686...
689
                SendOutData('L', FC_ADDRESS, 3, &MenuItem, sizeof(MenuItem), &MaxMenuItem,
686
                SendOutData('L', FC_ADDRESS, 3, &MenuItem, sizeof(MenuItem), &MaxMenuItem,
690
                                sizeof(MaxMenuItem), DisplayBuff, sizeof(DisplayBuff));
687
                                sizeof(MaxMenuItem), DisplayBuff, sizeof(DisplayBuff));
691
                request_Display1 = FALSE;
688
                request_Display1 = FALSE;
692
        }
689
        }
Line 693... Line 690...
693
 
690
 
694
        if (request_DebugLabel != 0xFF) { // Texte für die Analogdaten
691
        if (request_DebugLabel != 0xFF) { // Texte f�r die Analogdaten
695
                uint8_t label[16]; // local sram buffer
692
                uint8_t label[16]; // local sram buffer
696
                memcpy_P(label, ANALOG_LABEL[request_DebugLabel], 16); // read lable from flash to sram buffer
693
                memcpy_P(label, ANALOG_LABEL[request_DebugLabel], 16); // read lable from flash to sram buffer
697
                SendOutData('A', FC_ADDRESS, 2, (uint8_t *) &request_DebugLabel,
694
                SendOutData('A', FC_ADDRESS, 2, (uint8_t *) &request_DebugLabel,
698
                                sizeof(request_DebugLabel), label, 16);
695
                                sizeof(request_DebugLabel), label, 16);
699
                request_DebugLabel = 0xFF;
696
                request_DebugLabel = 0xFF;
Line 700... Line 697...
700
        }
697
        }
701
 
698
 
702
        if (ConfirmFrame && txd_complete) { // Datensatz ohne CRC bestätigen
699
        if (ConfirmFrame && txd_complete) { // Datensatz ohne CRC best�tigen
703
                SendOutData('B', FC_ADDRESS, 1, (uint8_t*) &ConfirmFrame,
700
                SendOutData('B', FC_ADDRESS, 1, (uint8_t*) &ConfirmFrame,
704
                                sizeof(ConfirmFrame));
701
                                sizeof(ConfirmFrame));