Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1198 | - | 1 | |
2 | /****************************************************************/ |
||
3 | /* */ |
||
4 | /* NG-Video 5,8GHz */ |
||
5 | /* */ |
||
6 | /* Copyright (C) 2011 - gebad */ |
||
7 | /* */ |
||
8 | /* This code is distributed under the GNU Public License */ |
||
9 | /* which can be found at http://www.gnu.org/licenses/gpl.txt */ |
||
10 | /* */ |
||
11 | /****************************************************************/ |
||
12 | |||
13 | #ifndef _MENUE_H_ |
||
14 | #define _MENUE_H_ |
||
15 | |||
16 | #define SCROLL_MAIN_MAX 9 // index array Scroll_Menu scr_main_menu[] = {....} Anzahl-1, da Beginn bei 0 |
||
17 | #define SCROLL_SERVO_MAX 4 // index array Scroll_Menu scr_servo_menu[] = {....} Anzahl-1, da Beginn bei 0 |
||
18 | |||
19 | /* bei Change_Value(....) */ |
||
20 | #define ZLE_VAL 1 // DOGM Zeile des zu ändernten Wertes, einfache generelle bessere Gestaltung |
||
21 | |||
22 | #define C_REPEAT 0 // konstante repeat Geschwindigkeit |
||
23 | #define V_REPEAT 1 // sich ändernte repeat Geschwindigkeit |
||
24 | #define CHRLS 0 // Flag überladener Zeichensatz lcdSpecialChrLs |
||
25 | #define CHRRS 1 // Flag überladener Zeichensatz lcdSpecialChrRs |
||
26 | |||
27 | typedef struct |
||
28 | { |
||
29 | const char *menu_nr; // Stringzeiger auf Befehlsnamen |
||
30 | void (*fp)(void); // Zeiger auf auszuführende Funktion |
||
31 | } command_table_t; |
||
32 | |||
33 | void Menu_Main (void); |
||
34 | void Menu_AV_Source (void); |
||
35 | void Menu_RX_Channel (void); |
||
36 | void Menu_RSSI_Calibr (void); |
||
37 | void Menu_RSSI_min (void); |
||
38 | void Menu_RSSI_min_all (void); |
||
39 | void Menu_RSSI_max (void); |
||
40 | void Menu_Language (void); |
||
41 | void Menu_Servo_Calibr (void); |
||
42 | void Menu_Servo_Steps (void); |
||
43 | void Menu_Servo1 (void); |
||
44 | void Menu_Servo2 (void); |
||
45 | void Menu_Servo1_rev (void); |
||
46 | void Menu_Servo1_left (void); |
||
47 | void Menu_Servo1_right (void); |
||
48 | void Menu_Servo1_middle (void); |
||
49 | void Menu_Servo2_rev (void); |
||
50 | void Menu_Servo2_left (void); |
||
51 | void Menu_Servo2_right (void); |
||
52 | void Menu_Servo2_middle (void); |
||
53 | void Menu_Servo_Test (void); |
||
54 | void Menu_Test_Frame (void); |
||
55 | void Menu_Test_ServoNr (void); |
||
56 | void Menu_Test_PulseWidth (void); |
||
57 | void Menu_Test_Continuous (void); |
||
58 | void Menu_Test_SingleStep (void); |
||
59 | void Menu_Test_Repeat (void); |
||
60 | void Menu_Test_Pause (void); |
||
61 | void Menu_Test_Pause_Step (void); |
||
62 | void Menu_Test_Start (void); |
||
63 | void Menu_lcd (void); |
||
64 | void Menu_lcd_Contrast (void); |
||
65 | void Menu_lcd_Backgr_Light (void); |
||
66 | void Menu_Battery (void); |
||
67 | void Menu_Low_U_Setup (void); |
||
68 | void Menu_U_Offset (void); |
||
69 | void Menu_MK_Battery (void); |
||
70 | void Menu_MK_BatteryNr (void); |
||
71 | void Menu_MK_BatteryCapacity(void); |
||
72 | void Menu_MK_I_Offset (void); |
||
73 | void Menu_MK_I_Faktor (void); |
||
74 | void Menu_MK_W_Faktor (void); |
||
75 | void Menu_Tracking_Ant (void); |
||
76 | void Menu_Tracking_Option (void); |
||
77 | void Menu_GPS_Display (void); |
||
78 | void Menu_GPS_Display_FLAG (void); |
||
79 | void Menu_GPS_Displ_RX_Time (void); |
||
80 | |||
81 | char pmenu[6] = {"0"}; // Zuordnung Menü Programmgliederung zu hinterlegten Funktionen |
||
82 | char tmp_pmenu[6]; |
||
83 | |||
84 | uint8_t ch_stored; // Flag zur Speicherung, wenn Wert im Hauptdisplay geändert |
||
85 | uint8_t coldstart; // Flag erstmaliger MK-Start(Motore) nur nach GPS-Fix |
||
86 | |||
87 | void Displ_Main_Disp(void); |
||
88 | void Displ_AV_Mark(uint8_t p, char marker); |
||
89 | void Displ_Str_mid(char *str, uint8_t zle); |
||
90 | void Displ_RX_Time(void); |
||
91 | void Menu_MK_BatteryChangeNr(void); |
||
92 | |||
93 | #define RIGHT 0 // Servopostionen, welche vom Einbau abhängig sind |
||
94 | #define LEFT 1 |
||
95 | #define MIDDLE 2 |
||
96 | |||
97 | typedef struct |
||
98 | { |
||
99 | uint16_t min; // entspricht Servopostionen, welche vom Einbau abhängig sind |
||
100 | uint16_t max; |
||
101 | } servo_limit_t; |
||
102 | |||
103 | servo_limit_t servo_limit[2][3] = {{{SERVO_I0_RIGHT_MIN, SERVO_I0_RIGHT_MAX},\ |
||
104 | {SERVO_I0_LEFT_MIN, SERVO_I0_LEFT_MAX},\ |
||
105 | {SERVO_I0_MIDDLE_MIN, SERVO_I0_MIDDLE_MAX}},\ |
||
106 | {{SERVO_I1_RIGHT_MIN, SERVO_I1_RIGHT_MAX},\ |
||
107 | {SERVO_I1_LEFT_MIN, SERVO_I1_LEFT_MAX},\ |
||
108 | {SERVO_I1_MIDDLE_MIN, SERVO_I1_MIDDLE_MAX}}}; |
||
109 | typedef struct |
||
110 | { |
||
111 | uint16_t min; // entspricht Servopostionen, welche vom Einbau abhängig sind |
||
112 | uint16_t max; |
||
113 | uint16_t mid; |
||
114 | } steps_pw_t; |
||
115 | |||
116 | // Servopositionen für 950µs, 2,05ms und 1,5ms ==> Ergebnis Schritte. Da Zeit in µs ist F_CPU*e-1 |
||
117 | const steps_pw_t steps_pw[2] = {{(uint64_t)950*F_CPU*1e-6/SERVO_PRESCALER + 0.5, (uint64_t)2050*F_CPU*1e-6/SERVO_PRESCALER + 0.5, (uint64_t)1500*F_CPU*1e-6/SERVO_PRESCALER + 0.5},\ |
||
118 | {(uint64_t)950*4*F_CPU*1e-6/SERVO_PRESCALER + 0.5, (uint64_t)2050*4*F_CPU*1e-6/SERVO_PRESCALER + 0.5, (uint64_t)1500*4*F_CPU*1e-6/SERVO_PRESCALER + 0.5}}; |
||
119 | |||
120 | # define POSIDX_MAX 4 |
||
121 | const uint8_t PosIdx[POSIDX_MAX] = {1, 0, 1, 2 }; // anzufahrende Servopositionen 0=MIN, 1=MID, 2=MAX |
||
122 | |||
123 | #endif /* _MENUE_H */ |