Rev 1465 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1465 | Rev 1467 | ||
---|---|---|---|
1 | /****************************************************************/ |
1 | /****************************************************************/ |
2 | /* */ |
2 | /* */ |
3 | /* NG-Video 5,8GHz */ |
3 | /* NG-Video 5,8GHz */ |
4 | /* */ |
4 | /* */ |
5 | /* Copyright (C) 2011 - gebad */ |
5 | /* Copyright (C) 2011 - gebad */ |
6 | /* */ |
6 | /* */ |
7 | /* This code is distributed under the GNU Public License */ |
7 | /* This code is distributed under the GNU Public License */ |
8 | /* which can be found at http://www.gnu.org/licenses/gpl.txt */ |
8 | /* which can be found at http://www.gnu.org/licenses/gpl.txt */ |
9 | /* */ |
9 | /* */ |
10 | /* Tabs: 2 */ |
10 | /* Tabs: 2 */ |
11 | /* */ |
11 | /* */ |
12 | /****************************************************************/ |
12 | /****************************************************************/ |
13 | 13 | ||
14 | #ifndef CONFIG_H_ |
14 | #ifndef CONFIG_H_ |
15 | #define CONFIG_H_ |
15 | #define CONFIG_H_ |
16 | 16 | ||
17 | /* PINA */ |
17 | /* PINA */ |
18 | #define VBAT 7 // ADC |
18 | #define VBAT 7 // ADC |
19 | #define RSSI1 6 // ADC |
19 | #define RSSI1 6 // ADC |
20 | #define RSSI0 5 // ADC |
20 | #define RSSI0 5 // ADC |
21 | #define MUX_IN 4 // OUT |
21 | #define MUX_IN 4 // OUT |
22 | #define MUX_EN 3 // OUT |
22 | #define MUX_EN 3 // OUT |
23 | #define CHANNel_12 2 // OUT |
23 | #define CHANNel_12 2 // OUT |
24 | #define CHANNel_11 1 // OUT |
24 | #define CHANNel_11 1 // OUT |
25 | #define CHANNel_10 0 // OUT |
25 | #define CHANNel_10 0 // OUT |
26 | 26 | ||
27 | /* PINB */ |
27 | /* PINB */ |
28 | #define LCD_BACKLIGHT 7 // OUT |
28 | #define LCD_BACKLIGHT 7 // OUT |
29 | #define BEEPER 4 // OUT |
29 | #define BEEPER 4 // OUT |
30 | #define POWER 3 // OUT |
30 | #define POWER 3 // OUT |
31 | #define CHANNel_02 2 // OUT |
31 | #define CHANNel_02 2 // OUT |
32 | #define CHANNel_01 1 // OUT |
32 | #define CHANNel_01 1 // OUT |
33 | #define CHANNel_00 0 // OUT |
33 | #define CHANNel_00 0 // OUT |
34 | 34 | ||
35 | /* PINC */ |
35 | /* PINC */ |
36 | #define KEY_MINUS 7 // IN |
36 | #define KEY_MINUS 7 // IN |
37 | #define KEY_PLUS 6 // IN |
37 | #define KEY_PLUS 6 // IN |
38 | #define LCD_ENABLE 5 // OUT |
38 | #define LCD_ENABLE 5 // OUT |
39 | #define LCD_REGSELECT 4 // OUT |
39 | #define LCD_REGSELECT 4 // OUT |
40 | #define LCD_DATA7 3 // OUT |
40 | #define LCD_DATA7 3 // OUT |
41 | #define LCD_DATA6 2 // OUT |
41 | #define LCD_DATA6 2 // OUT |
42 | #define LCD_DATA5 1 // OUT |
42 | #define LCD_DATA5 1 // OUT |
43 | #define LCD_DATA4 0 // OUT |
43 | #define LCD_DATA4 0 // OUT |
44 | 44 | ||
45 | /* PIND */ |
45 | /* PIND */ |
46 | #define KEY_ENTER 7 // IN |
46 | #define KEY_ENTER 7 // IN |
47 | #define HSYNC 6 // IN |
47 | #define HSYNC 6 // IN |
48 | #define SERVO1 5 // OUT PWM |
48 | #define SERVO1 5 // OUT PWM |
49 | #define SERVO2 4 // OUT PWM |
49 | #define SERVO2 4 // OUT PWM |
50 | #define VSYNC1 3 // IN Int1 |
50 | #define VSYNC1 3 // IN Int1 |
51 | #define VSYNC0 2 // IN Int0 |
51 | #define VSYNC0 2 // IN Int0 |
52 | #define TX 1 // OUT USART |
52 | #define TX 1 // OUT USART |
53 | #define RX 0 // IN USART |
53 | #define RX 0 // IN USART |
54 | /* PORT - DDR */ |
54 | /* PORT - DDR */ |
55 | /* LCD */ |
55 | /* LCD */ |
56 | #define LCD_BACKLIGHT_PORT PORTB |
56 | #define LCD_BACKLIGHT_PORT PORTB |
57 | #define LCD_BACKLIGHT_DDR DDRB |
57 | #define LCD_BACKLIGHT_DDR DDRB |
58 | #define LCD_E_PORT PORTC |
58 | #define LCD_E_PORT PORTC |
59 | #define LCD_E_DDR DDRC |
59 | #define LCD_E_DDR DDRC |
60 | #define LCD_RS_PORT PORTC |
60 | #define LCD_RS_PORT PORTC |
61 | #define LCD_RS_DDR DDRC |
61 | #define LCD_RS_DDR DDRC |
62 | #define LCD_DATA_PORT PORTC |
62 | #define LCD_DATA_PORT PORTC |
63 | #define LCD_DATA_DDR DDRC |
63 | #define LCD_DATA_DDR DDRC |
64 | 64 | ||
65 | #define LCD_LINES 3 |
65 | #define LCD_LINES 3 |
66 | #define LCD_COLS 16 |
66 | #define LCD_COLS 16 |
67 | 67 | ||
68 | /* SWITCH */ |
68 | /* SWITCH */ |
69 | #define KEY_MP_DDR DDRC |
69 | #define KEY_MP_DDR DDRC |
70 | #define KEY_MP_PORT PORTC |
70 | #define KEY_MP_PORT PORTC |
71 | #define KEY_MP_PIN PINC |
71 | #define KEY_MP_PIN PINC |
72 | #define KEY_ENTER_DDR DDRD |
72 | #define KEY_ENTER_DDR DDRD |
73 | #define KEY_ENTER_PORT PORTD |
73 | #define KEY_ENTER_PORT PORTD |
74 | #define KEY_ENTER_PIN PIND |
74 | #define KEY_ENTER_PIN PIND |
75 | 75 | ||
76 | #define SW_MINUS 7 |
76 | #define SW_MINUS 7 |
77 | #define SW_PLUS 6 |
77 | #define SW_PLUS 6 |
78 | #define SW_ENTER 5 |
78 | #define SW_ENTER 5 |
79 | #define REPEAT_MASK (1<<SW_MINUS | 1<<SW_PLUS | 1<<SW_ENTER) |
79 | #define REPEAT_MASK (1<<SW_MINUS | 1<<SW_PLUS | 1<<SW_ENTER) |
80 | 80 | ||
81 | /* zusätzliche Timer in Abhängikeit vom Interrupttimer 0 - Keys */ |
81 | /* zusätzliche Timer in Abhängikeit vom Interrupttimer 0 - Keys */ |
82 | #define TIMER0_1 50 // x * 10ms für Anzeige UBat |
82 | #define TIMER0_1 50 // x * 10ms für Anzeige UBat |
83 | #define TIMER0_2 20 // x * 10ms für Bargraph und Diversity |
83 | #define TIMER0_2 20 // x * 10ms für Bargraph und Diversity |
84 | #define TIMER0_3 2 // x * 10ms für RSSI Diversity |
84 | #define TIMER0_3 2 // x * 10ms für RSSI Diversity |
85 | #define TIMER0_4 10 // x * 10ms für wi232 Nachführung Antenne |
85 | #define TIMER0_4 10 // x * 10ms für wi232 Nachführung Antenne |
86 | #define TIMER0_5 1000 // x * 10ms Hintergrundbeleuchtung 10 sekunden Schritte |
86 | #define TIMER0_5 1000 // x * 10ms Hintergrundbeleuchtung 10 sekunden Schritte |
87 | #define BLINK_PERIOD 12 // abhängig von Tracking_GPS() in Task_0_4(void) |
87 | #define BLINK_PERIOD 12 // abhängig von Tracking_GPS() in Task_0_4(void) |
88 | #define T2SECDIV 4000 // Divisor für Timer 2 - Ergebnis in Sekunden |
88 | #define T2SECDIV 4000 // Divisor für Timer 2 - Ergebnis in Sekunden |
89 | #define M59S59 3599 // 3599 sind 59 Minuten und 59 Sekunden |
89 | #define M59S59 3599 // 3599 sind 59 Minuten und 59 Sekunden |
90 | #define T2PROD_M59S59 (uint32_t)T2SECDIV*M59S59 |
90 | #define T2PROD_M59S59 (uint32_t)T2SECDIV*M59S59 |
91 | /* initiale Anfangswerte der Einstellungen */ |
91 | /* initiale Anfangswerte der Einstellungen */ |
92 | #define EEP_INITB 75 // irgend ein Wert um beschriebenen EEPROM zu erkennen |
92 | #define EEP_INITB 75 // irgend ein Wert um beschriebenen EEPROM zu erkennen |
93 | #define VERSION "1.30" |
93 | #define VERSION "1.31" |
94 | #define CONTRAST3V 16 // 16 bei LCD 3,3V Bias 1/5 default Wert |
94 | #define CONTRAST3V 16 // 16 bei LCD 3,3V Bias 1/5 default Wert |
95 | #define CONTRAST5V 12 // 12 bei LCD 5V Bias 1/4 |
95 | #define CONTRAST5V 12 // 12 bei LCD 5V Bias 1/4 |
96 | #define CONTRAST_MIN 0 |
96 | #define CONTRAST_MIN 0 |
97 | #define CONTRAST_MAX 30 |
97 | #define CONTRAST_MAX 30 |
98 | #define BACKGR_LIGHT 31 // Hintergrundbeleuchtung immer an |
98 | #define BACKGR_LIGHT 31 // Hintergrundbeleuchtung immer an |
99 | #define BACKGR_LIGHT_MIN 0 // Hintergrundbeleuchtung immer aus |
99 | #define BACKGR_LIGHT_MIN 0 // Hintergrundbeleuchtung immer aus |
100 | #define BACKGR_LIGHT_MAX 31 // Hintergrundbeleuchtung immer an, z.Z.: Max = 5 Minuten |
100 | #define BACKGR_LIGHT_MAX 31 // Hintergrundbeleuchtung immer an, z.Z.: Max = 5 Minuten |
101 | #define U_OFFSET 85 // um type float o. double zu vermeiden *100 |
101 | #define U_OFFSET 85 // um type float o. double zu vermeiden *100 |
102 | #define U_OFFSET_MIN 0 |
102 | #define U_OFFSET_MIN 0 |
103 | #define U_OFFSET_MAX 200 |
103 | #define U_OFFSET_MAX 200 |
104 | #define U_MIN 960 // um type float o. double zu vermeiden *100 |
104 | #define U_MIN 960 // um type float o. double zu vermeiden *100 |
105 | #define U_MIN_MIN 550 // auch für Lipo 2s |
105 | #define U_MIN_MIN 550 // auch für Lipo 2s |
106 | #define U_MIN_MAX 1400 |
106 | #define U_MIN_MAX 1400 |
107 | #define CHANNEL 1 // default Wert |
107 | #define CHANNEL 1 // default Wert |
108 | #define CHANNEL_MIN 1 |
108 | #define CHANNEL_MIN 1 |
109 | #define CHANNEL_MAX 7 |
109 | #define CHANNEL_MAX 7 |
110 | #define AV_SOURCE 0 // av1, av2, diversity |
110 | #define AV_SOURCE 0 // av1, av2, diversity |
111 | #define AV_SOURCE_MIN 0 |
111 | #define AV_SOURCE_MIN 0 |
112 | #define AV_SOURCE_MAX 2 |
112 | #define AV_SOURCE_MAX 2 |
113 | /* Toleranzen bei den RSSI-Spannungen ausgleichen */ |
113 | /* Toleranzen bei den RSSI-Spannungen ausgleichen */ |
114 | #define UDBM_MIN 460 // RSSI geringste Feldstärke |
114 | #define UDBM_MIN 460 // RSSI geringste Feldstärke |
115 | #define UDBM_MAX 75 // RSSI größte Feldstärke |
115 | #define UDBM_MAX 75 // RSSI größte Feldstärke |
116 | #define UDBM_KORR_FA 128 // Korrekturfaktor 1 * 128 RSSI1 korrigieren |
116 | #define UDBM_KORR_FA 128 // Korrekturfaktor 1 * 128 RSSI1 korrigieren |
117 | /* Servo */ |
117 | /* Servo */ |
118 | #define SERVO_PAN 0 |
118 | #define SERVO_PAN 0 |
119 | #define SERVO_TILT 1 |
119 | #define SERVO_TILT 1 |
120 | #define SERVO_NUM_CHANNELS 2 // Anzahl der angeschlossen Servos max. 2!!! |
120 | #define SERVO_NUM_CHANNELS 2 // Anzahl der angeschlossen Servos max. 2!!! |
121 | /* Servokalibrierungen derzeit zu SERVO_STEPS = 255 skaliert */ |
121 | /* Servokalibrierungen derzeit zu SERVO_STEPS = 255 skaliert */ |
122 | //prescaler 256 |
122 | //prescaler 256 |
123 | #define SERVO_I0_RIGHT 45 // default Wert, ca. 0,9ms |
123 | #define SERVO_I0_RIGHT 45 // default Wert, ca. 0,9ms |
124 | #define SERVO_I0_RIGHT_MIN 0 // Servokalibrierung Grenze der linken Position |
124 | #define SERVO_I0_RIGHT_MIN 0 // Servokalibrierung Grenze der linken Position |
125 | #define SERVO_I0_RIGHT_MAX 100 // SERVO_MIN + SERVO_RIGHT |
125 | #define SERVO_I0_RIGHT_MAX 100 // SERVO_MIN + SERVO_RIGHT |
126 | #define SERVO_I0_LEFT 45 // default Wert, ca. 2,1ms |
126 | #define SERVO_I0_LEFT 45 // default Wert, ca. 2,1ms |
127 | #define SERVO_I0_LEFT_MIN 0 // Servokalibrierung Grenze der rechten Position |
127 | #define SERVO_I0_LEFT_MIN 0 // Servokalibrierung Grenze der rechten Position |
128 | #define SERVO_I0_LEFT_MAX 100 // SERVO_MAX - SERVO_LEFT |
128 | #define SERVO_I0_LEFT_MAX 100 // SERVO_MAX - SERVO_LEFT |
129 | #define SERVO_I0_MIDDLE SERVO_STEPS/2 |
129 | #define SERVO_I0_MIDDLE SERVO_STEPS/2 |
130 | #define SERVO_I0_MIDDLE_MIN SERVO_STEPS/2 - 25 |
130 | #define SERVO_I0_MIDDLE_MIN SERVO_STEPS/2 - 25 |
131 | #define SERVO_I0_MIDDLE_MAX SERVO_STEPS/2 + 25 |
131 | #define SERVO_I0_MIDDLE_MAX SERVO_STEPS/2 + 25 |
132 | //prescaler 64 |
132 | //prescaler 64 |
133 | #define SERVO_I1_RIGHT 180 // default Wert, ca. 0,9ms |
133 | #define SERVO_I1_RIGHT 180 // default Wert, ca. 0,9ms |
134 | #define SERVO_I1_RIGHT_MIN 0 // Servokalibrierung Grenze der linken Position |
134 | #define SERVO_I1_RIGHT_MIN 0 // Servokalibrierung Grenze der linken Position |
135 | #define SERVO_I1_RIGHT_MAX 400 // SERVO_MIN + SERVO_RIGHT |
135 | #define SERVO_I1_RIGHT_MAX 400 // SERVO_MIN + SERVO_RIGHT |
136 | #define SERVO_I1_LEFT 180 // default Wert, ca. 2,1ms |
136 | #define SERVO_I1_LEFT 180 // default Wert, ca. 2,1ms |
137 | #define SERVO_I1_LEFT_MIN 0 // Servokalibrierung Grenze der rechten Position |
137 | #define SERVO_I1_LEFT_MIN 0 // Servokalibrierung Grenze der rechten Position |
138 | #define SERVO_I1_LEFT_MAX 400 // SERVO_MAX - SERVO_LEFT |
138 | #define SERVO_I1_LEFT_MAX 400 // SERVO_MAX - SERVO_LEFT |
139 | //#define SERVO_I1_MIDDLE ((SERVO_STEPS + 1) * 4 - 1)/2 |
139 | //#define SERVO_I1_MIDDLE ((SERVO_STEPS + 1) * 4 - 1)/2 |
140 | #define SERVO_I1_MIDDLE_MIN ((SERVO_STEPS + 1) * 4 - 1)/2 - 100 |
140 | #define SERVO_I1_MIDDLE_MIN ((SERVO_STEPS + 1) * 4 - 1)/2 - 100 |
141 | #define SERVO_I1_MIDDLE_MAX ((SERVO_STEPS + 1) * 4 - 1)/2 + 100 |
141 | #define SERVO_I1_MIDDLE_MAX ((SERVO_STEPS + 1) * 4 - 1)/2 + 100 |
142 | 142 | ||
143 | #define SERVO_REV 0 // kein Reverse |
143 | #define SERVO_REV 0 // kein Reverse |
144 | /* Test Servo */ |
144 | /* Test Servo */ |
145 | #define SERVO_PERIODE 20 // default Angabe in ms |
145 | #define SERVO_PERIODE 20 // default Angabe in ms |
146 | #define SERVO_PERIODE_MIN 10 // 10ms |
146 | #define SERVO_PERIODE_MIN 10 // 10ms |
147 | #define SERVO_PERIODE_MAX 30 // 30ms |
147 | #define SERVO_PERIODE_MAX 30 // 30ms |
148 | #define SINGLE_STEP 0 // Einzelschritt aus |
148 | #define SINGLE_STEP 0 // Einzelschritt aus |
149 | #define SINGLE_STEP_MIN 0 |
149 | #define SINGLE_STEP_MIN 0 |
150 | #define SINGLE_STEP_MAX 20 // bei prescaler 256, sonst * 4 (von links nach rechts in 9 Abschnitte) |
150 | #define SINGLE_STEP_MAX 20 // bei prescaler 256, sonst * 4 (von links nach rechts in 9 Abschnitte) |
151 | // zwischen den Schritten muss Pause > der Servoperiode sein, sonst keine Aktualisierung |
151 | // zwischen den Schritten muss Pause > der Servoperiode sein, sonst keine Aktualisierung |
152 | 152 | ||
153 | #define REPEAT 1 |
153 | #define REPEAT 1 |
154 | #define REPEAT_MIN 1 |
154 | #define REPEAT_MIN 1 |
155 | #define REPEAT_MAX 100 |
155 | #define REPEAT_MAX 100 |
156 | #define PAUSE 10 |
156 | #define PAUSE 10 |
157 | #define PAUSE_MIN 4 // mindestens 400ms, da mechanischer Servo-Lauf zur Position berücksichtigt werden muss |
157 | #define PAUSE_MIN 4 // mindestens 400ms, da mechanischer Servo-Lauf zur Position berücksichtigt werden muss |
158 | #define PAUSE_MAX 20 // Pause pro Links-, Mittel- und Rechtsposition 10*100ms |
158 | #define PAUSE_MAX 20 // Pause pro Links-, Mittel- und Rechtsposition 10*100ms |
159 | #define PAUSE_STEP 0 |
159 | #define PAUSE_STEP 0 |
160 | #define PAUSE_STEP_MIN 0 // Pause bei jeden Servoschritt in ms |
160 | #define PAUSE_STEP_MIN 0 // Pause bei jeden Servoschritt in ms |
161 | #define PAUSE_STEP_MAX 200 |
161 | #define PAUSE_STEP_MAX 200 |
162 | /* Antennen-Nachführung */ |
162 | /* Antennen-Nachführung */ |
163 | #define TRACKING_MIN 0 // aus, TRACKING_RSSI, TRACKING_GPS, TRACKING_MKCOCKPIT, TRACKING_NMEA |
163 | #define TRACKING_MIN 0 // aus, TRACKING_RSSI, TRACKING_GPS, TRACKING_MKCOCKPIT, TRACKING_NMEA |
164 | #define TRACKING_MAX 4 |
164 | #define TRACKING_MAX 4 |
165 | /* Antennen-Nachführung per RSSI */ |
165 | /* Antennen-Nachführung per RSSI */ |
166 | #define TRACKING_HYSTERESE 40 // Hysterese bevor Tracking bei Richtungswechsel anspricht |
166 | #define TRACKING_HYSTERESE 40 // Hysterese bevor Tracking bei Richtungswechsel anspricht |
167 | #define TRACKING_HYST_MIN 0 |
167 | #define TRACKING_HYST_MIN 0 |
168 | #define TRACKING_HYST_MAX 100 |
168 | #define TRACKING_HYST_MAX 100 |
169 | /* MK Akku-Kapazität */ |
169 | /* MK Akku-Kapazität */ |
170 | #define AKKU_NR_MIN 0 |
170 | #define AKKU_NR_MIN 0 |
171 | #define AKKU_NR_MAX 9 |
171 | #define AKKU_NR_MAX 9 |
172 | #define AKKU_CAPACITY 2500 // in mAh für Ermittlung verbleibende Flugzeit |
172 | #define AKKU_CAPACITY 2500 // in mAh für Ermittlung verbleibende Flugzeit |
173 | #define AKKU_CAPACITY_MIN 1000 |
173 | #define AKKU_CAPACITY_MIN 1000 |
174 | #define AKKU_CAPACITY_MAX 6000 |
174 | #define AKKU_CAPACITY_MAX 6000 |
175 | #define MK_I_OFFSET 8 // Standart 0.3 |
175 | #define MK_I_OFFSET 8 // Standart 0.3 |
176 | #define MK_I_OFFSET_MIN 0 // -0.5 (+0,5A ist auch der vom MK gesendete konstante Offset) |
176 | #define MK_I_OFFSET_MIN 0 // -0.5 (+0,5A ist auch der vom MK gesendete konstante Offset) |
177 | #define MK_I_OFFSET_MAX 20 |
177 | #define MK_I_OFFSET_MAX 20 |
178 | #define MK_I_OFFSET_5 5 // entspricht -0.5 |
178 | #define MK_I_OFFSET_5 5 // entspricht -0.5 |
179 | #define MK_I_FAKTOR 80 |
179 | #define MK_I_FAKTOR 80 |
180 | #define MK_I_FAKTOR_MIN 30 // Angabe * 100 |
180 | #define MK_I_FAKTOR_MIN 30 // Angabe * 100 |
181 | #define MK_I_FAKTOR_MAX 200 |
181 | #define MK_I_FAKTOR_MAX 200 |
182 | #define MK_W_FAKTOR 80 |
182 | #define MK_W_FAKTOR 80 |
183 | #define MK_W_FAKTOR_MIN 30 |
183 | #define MK_W_FAKTOR_MIN 30 |
184 | #define MK_W_FAKTOR_MAX 200 |
184 | #define MK_W_FAKTOR_MAX 200 |
185 | 185 | ||
186 | #endif /* CONFIG_H_ */ |
186 | #endif /* CONFIG_H_ */ |
187 | 187 |