Subversion Repositories Projects

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1687 - 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 NGVIDEO_H_
14
#define NGVIDEO_H_
15
 
16
#include "config.h"
17
#include "messages.h"
18
#include "servo.h"
19
#include "dogm.h"
20
#include "menue.h"
21
#include "lipo.h"
22
 
23
/* Indexwerte für av_source bzw. zur Auswertung von av_source */
24
#define AV1                                                                     0
25
#define AV2                                                                     1
26
#define DIVERSITY                                               2
27
 
28
#define MARKER_SELECT                           0xfc    // 0xfc enspricht '>>' Menue-Marker
29
#define MARKER_AV                                               0xfb    // 0xfb enspricht '<<' Diversity AV-Marker
30
#define MARKER_RSSI                                     'd'             // Diversity, wenn RX umschaltet mittels RSSI-Wert
31
#define MARKER_SYNC                                     's'             // Diversity, wenn RX umschaltet auf Grund der Bildsynchronisation
32
 
33
#define SET_MUX_0                                               PORTA &= ~(1<<MUX_IN);                                          // MUX SxA enabled
34
#define SET_MUX_1                                               PORTA |= (1<<MUX_IN);                                                   // MUX SxB enabled
35
#define CLEAR_INT10                                     EIMSK &= ~((1<<INT1) | (1<<INT0));// Interrupt für Sync ausschalten
36
#define SET_INT10                                               EIMSK |= (1<<INT1) | (1<<INT0);         // External Interrupt Mask Register ein
37
 
38
/* Beep Verzögerungszeitein */
39
#define DBEEPVERS                                               2                       // Beep on              nach Versionsanzeige
40
#define DBEEPVERSP                               30                     // Beep Pause   nach Versionsanzeige
41
#define BEEPENTER                                               1                       // Beep on              nach Enter kurz Scroll_Menu() und Select_Menu()
42
#define DBEEPWR                                                 4                       // Beep on              nach geänderten Werte ROM schreiben
43
#define DBEEPWRP                                         30                     // Beep Pause   nach geänderten Werte ROM schreiben
44
#define BEEPBAT                                          20                     // Beep on              bei Akku low
45
#define BEEP_LOW_TIME                   240                     // TIMER0_1 aller 500ms aufgerufen, BeepIntervall Akku leer mit 2 Min Abstand beginnen
46
#define DBEEPNMEAFIX                    120                     // Beep on              nach NMEA SAT-FIX
47
#define DBEEPMEAFIXP                    240                     // Beep Pause   nach NMEA SAT-FIX
48
 
49
#define ENABLE_BTIMER                           1                       // damit Intervall Beeper für Akku leer mit TIMER0_1 gesteuert wird 
50
#define DISABLE_BTIMER                  0
51
 
52
#define GPS_DISP_NONE                           0                       // Anzeigen bei Antennennachführung per WI232 und GPS
53
#define GPS_DISP_CALC                           1
54
#define GPS_DISP_CURRENT                2
55
#define GPS_DISP_HOME                           3
56
#define GPS_MISC                                                4
57
#define GPS_RX_COUNT                            5
58
 
59
#define BAUDRATE                                                5                       // für Antennennachführung mittels MKCockpit
60
#define BAUDRATE_MIN                            0
61
#define BAUDRATE_MAX                            6
62
 
63
#define getBaud(x)                              (uint16_t)pgm_read_dword(&baud[x])
64
extern const uint16_t PROGMEM baud[8];
65
 
66
#define POLOLU_CMD                                      2
67
 
68
#define OFF                                                                     0
69
#define ON                                                                      1
70
 
71
#define EEPROM                                  __attribute__ ((section(".eeprom")))
72
 
73
typedef struct {
74
        uint8_t rev;
75
        uint16_t min;
76
        uint16_t max;
77
        uint16_t mid;
78
} servo_t;
79
 
80
typedef struct {
81
        uint16_t min;
82
        uint16_t max;
83
        uint16_t korr_1;
84
        uint16_t korr_2;
85
} udbm_t;
86
 
87
typedef struct {
88
        uint16_t u0;
89
        uint16_t u1;
90
} adc_avg_t;
91
 
92
/**************************************************************/
93
/*                                                                                                                                                                                                                                              */
94
/*                                                                                                      EEPROM                                                                                                          */
95
/*                                                                                                                                                                                                                                              */
96
/**************************************************************/
97
extern uint8_t                  ep_eep_init                                                                                     EEPROM;
98
extern char                                     ep_version[sizeof(VERSION)]                     EEPROM;
99
extern uint8_t                  ep_dogm_vers                                                                            EEPROM;
100
extern uint8_t                  ep_contrast                                                                             EEPROM;
101
extern uint8_t                  ep_light_time                                                                           EEPROM;
102
extern uint8_t                  ep_u_offset                                                                             EEPROM;
103
extern uint16_t                 ep_u_min                                                                                                EEPROM;
104
extern uint8_t                  ep_rssi_inv                                                                             EEPROM;
105
extern uint8_t                  ep_channel                                                                                      EEPROM;
106
extern uint8_t                  ep_av_source                                                                            EEPROM;
107
extern uint8_t                  ep_language                                                                                     EEPROM;
108
extern udbm_t                           ep_udbm[CHANNEL_MAX]                                            EEPROM;
109
extern uint16_t                 ep_tx_value_on                                                                  EEPROM;
110
extern uint16_t                 ep_tx_value_off                                                                 EEPROM;
111
extern uint8_t                  ep_sIdxSteps                                                                            EEPROM;
112
extern servo_t                  ep_servo[SERVO_NUM_CHANNELS]            EEPROM;
113
extern uint8_t                  ep_servo_frame                                                                  EEPROM;
114
extern uint8_t                  ep_servo_nr                                                                                     EEPROM;
115
extern uint8_t                  ep_single_step                                                                  EEPROM;
116
extern uint8_t                  ep_repeat                                                                                               EEPROM;
117
extern uint8_t                  ep_pause                                                                                                EEPROM;
118
extern uint8_t                  ep_pause_step                                                                           EEPROM;
119
extern uint8_t                  ep_tracking                                                                                     EEPROM;
120
extern uint8_t                  ep_track_hyst                                                                           EEPROM;
121
extern uint8_t                  ep_track_tx                                                                                     EEPROM;
122
extern uint8_t                  ep_baudrate                                                                                     EEPROM;
123
extern mk_current_t     ep_mk_current                                                                           EEPROM;
124
extern uint8_t                  ep_mk_akku_nr                                                                           EEPROM;
125
extern mk_lipo_t                ep_mk_lipo[AKKU_NR_MAX+1]                               EEPROM;
126
extern uint8_t                  ep_mk_i_offset                                                                  EEPROM;
127
extern uint8_t                  ep_mk_i_faktor                                                                  EEPROM;
128
extern uint8_t                  ep_mk_w_faktor                                                                  EEPROM;
129
 
130
/**************************************************************/
131
// Working variables of EEPROM contents
132
extern uint8_t                  eep_init;
133
extern char                                     version[sizeof(VERSION)];
134
extern uint8_t                  dogm_vers;
135
extern uint8_t                  contrast;
136
extern uint8_t                  light_time;
137
extern uint8_t                  u_offset;
138
extern uint16_t                 u_min;
139
extern uint8_t                  rssi_inv;
140
extern uint8_t                  channel;
141
extern uint8_t                  av_source;
142
extern uint8_t                  language;
143
extern udbm_t                           udbm;
144
extern uint16_t                 tx_value_on;
145
extern uint16_t                 tx_value_off;
146
extern uint8_t                  sIdxSteps;
147
extern servo_t                  servo[SERVO_NUM_CHANNELS];
148
extern uint8_t                  servo_frame;
149
extern uint8_t                  servo_nr;
150
extern uint8_t                  single_step;
151
extern uint8_t                  repeat;
152
extern uint8_t                  pause;
153
extern uint8_t                  pause_step;
154
extern uint8_t                  tracking;
155
extern uint8_t                  track_hyst;
156
extern uint8_t                  track_tx;
157
extern uint8_t                  baudrate;
158
extern uint8_t                  ch_stored;                              // Flag zur Speicherung, wenn Wert im Hauptdisplay geändert
159
 
160
/**************************************************************/
161
extern uint8_t                  coldstart;                              // Flag erstmaliger MK-Start(Motore) nur nach GPS-Fix
162
extern uint8_t                  bat_low;               
163
extern uint16_t                 hyst_u_min;
164
extern uint8_t                  gps_display;
165
extern uint8_t                  gps_disp_clear;
166
extern uint8_t                  sw_avx;
167
extern uint16_t                 bar_udbm[12];
168
 
169
extern uint8_t                  MK_Motor_run;           // Flag für RX Time-Counter Start/Stop
170
extern uint8_t                  mk_timer;                               // Zeitzähler lipo.time_on auf aus
171
 
172
extern volatile uint32_t rxcount0;
173
extern volatile uint32_t rxcount1;
174
 
175
extern SpecialChr_t lcdSpecialChr[7];
176
extern SpecialChr_t lcdSpecialChrLs[8];
177
extern SpecialChr_t lcdSpecialChrRs[5];
178
 
179
void Init_EEPROM(uint8_t ep_reset);
180
void servoSetDefaultPos(void);
181
void Set_DOGM_Version(void);
182
void Set_Channel(uint8_t channel);
183
uint8_t Set_AV_Source(uint8_t src);
184
 
185
void lcdSet_BackgrLight_Off(void);
186
void lcd_BackgrLight_On(void);
187
void lcd_BackgrLight(void);
188
 
189
void ADC_Init(void);
190
uint16_t ADC_Read( uint8_t channel );
191
uint16_t ADC_Read_inv( uint8_t channel );
192
 
193
void Beep(uint8_t time);
194
void Double_Beep(uint8_t time, uint8_t pause);
195
 
196
void Displ_VBat(void);
197
void Displ_U_2Nk(uint16_t u);
198
 
199
uint8_t RSSI_Calc_UdBm(uint16_t *pbar_udbm);
200
uint8_t RSSI_Min_Calibrate(uint8_t nchannel, uint16_t *pbar_udbm);
201
void RSSI_Max_Calibrate(uint16_t *pbar_udbm);
202
 
203
void USART_Init_Baudrate(void);
204
void Double_Beep(uint8_t time, uint8_t pause);
205
uint16_t Change_Value_plmi(uint16_t val, uint16_t min_val, uint16_t max_val, uint8_t posX, uint8_t posY, Displ_Fnct_t Displ_Fnct, uint8_t cycle, uint8_t vrepeat);
206
uint16_t U_Messen_cmp(uint8_t beep_timer);
207
 
208
void Task_0_1(void);
209
void Task_0_2(void);
210
void Task_0_3(void);
211
void Task_0_4(void);
212
void Task_0_5(void);
213
void Tasks_invisible(void);
214
 
215
#endif /* NGVIDEO_H_ */