Subversion Repositories Projects

Rev

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 */