Subversion Repositories Projects

Rev

Blame | Last modification | View Log | RSS feed

/****************************************************************/
/*                                                                                                                                                                                                                                                      */
/*                                                                       NG-Video 5,8GHz                                                                                                                */
/*                                                                                                                                                                                                                                                      */
/*                                                              Copyright (C) 2011 - gebad                                                                              */
/*                                                                                                                                                                                                                                                      */
/*      This code is distributed under the GNU Public License                           */
/*      which can be found at http://www.gnu.org/licenses/gpl.txt               */
/*                                                                                                                                                                                                                                                      */
/*      Tabs: 2                                                                                                                                                                                                                 */
/*                                                                                                                                                                                                                                                      */
/****************************************************************/

#ifndef CONFIG_H_
#define CONFIG_H_

/* PINA */
#define VBAT                                                                            7       //              ADC
#define RSSI1                                                                           6       //              ADC
#define RSSI0                                                                           5       //              ADC
#define MUX_IN                                                                  4       //              OUT
#define MUX_EN                                                                  3       //              OUT
#define CHANNel_12                                                      2       //              OUT
#define CHANNel_11                                                      1       //              OUT
#define CHANNel_10                                                      0       //              OUT

/* PINB */
#define LCD_BACKLIGHT                                           7       //              OUT
#define BEEPER                                                                  4       //              OUT
#define POWER                                                                           3       //              OUT
#define CHANNel_02                                                      2       //              OUT
#define CHANNel_01                                                      1       //              OUT
#define CHANNel_00                                                      0       //              OUT

/* PINC */
#define KEY_MINUS                                                               7       //              IN
#define KEY_PLUS                                                                6       //              IN
#define LCD_ENABLE                                                      5       //              OUT
#define LCD_REGSELECT                                           4       //              OUT
#define LCD_DATA7                                                               3       //              OUT
#define LCD_DATA6                                                               2       //              OUT
#define LCD_DATA5                                                               1       //              OUT
#define LCD_DATA4                                                               0       //              OUT

/* PIND */
#define KEY_ENTER                                                               7       //              IN
#define HSYNC                                                                           6       //              IN
#define SERVO1                                                                  5       //              OUT PWM
#define SERVO2                                                                  4       //              OUT PWM
#define VSYNC1                                                                  3       //              IN      Int1
#define VSYNC0                                                                  2       //              IN      Int0
#define TX                                                                                      1       //              OUT USART
#define RX                                                                                      0       //              IN      USART
/* PORT - DDR */
/*              LCD                     */
#define LCD_BACKLIGHT_PORT              PORTB
#define LCD_BACKLIGHT_DDR                       DDRB
#define LCD_E_PORT                                              PORTC
#define LCD_E_DDR                                                       DDRC
#define LCD_RS_PORT                                             PORTC
#define LCD_RS_DDR                                              DDRC
#define LCD_DATA_PORT                                   PORTC
#define LCD_DATA_DDR                                    DDRC

#define LCD_LINES                                                               3
#define LCD_COLS                                                         16

/* SWITCH */
#define KEY_MP_DDR                                              DDRC
#define KEY_MP_PORT                                             PORTC
#define KEY_MP_PIN                                              PINC
#define KEY_ENTER_DDR                           DDRD
#define KEY_ENTER_PORT                          PORTD
#define KEY_ENTER_PIN                                   PIND

#define SW_MINUS                                                                7
#define SW_PLUS                                                                 6
#define SW_ENTER                                                                5
#define REPEAT_MASK                                     (1<<SW_MINUS | 1<<SW_PLUS | 1<<SW_ENTER)

/* zusätzliche Timer in Abhängikeit vom Interrupttimer 0 - Keys */
#define TIMER0_1                                                         50     // x * 10ms für Anzeige UBat
#define TIMER0_2                                                         20     // x * 10ms für Bargraph und Diversity
#define TIMER0_3                                                                2       // x * 10ms für RSSI Diversity
#define TIMER0_4                                                         10     // x * 10ms für wi232 Nachführung Antenne
#define TIMER0_5                                                 1000   // x * 10ms Hintergrundbeleuchtung 10 sekunden Schritte
#define BLINK_PERIOD                                     12     // abhängig von Tracking_GPS() in Task_0_4(void)
#define T2SECDIV                                                 4000   // Divisor für Timer 2 - Ergebnis in Sekunden
#define M59S59                                                   3599   // 3599 sind 59 Minuten und 59 Sekunden
#define T2PROD_M59S59                                   (uint32_t)T2SECDIV*M59S59
/* initiale Anfangswerte der Einstellungen */
#define EEP_INITB                                                        75     // irgend ein Wert um beschriebenen EEPROM zu erkennen
#define VERSION                                                         "1.30"
#define CONTRAST3V                                               16     // 16 bei LCD 3,3V Bias 1/5 default Wert
#define CONTRAST5V                                               12     // 12 bei LCD    5V Bias 1/4
#define CONTRAST_MIN                                            0
#define CONTRAST_MAX                                     30
#define BACKGR_LIGHT                                     31     // Hintergrundbeleuchtung immer an
#define BACKGR_LIGHT_MIN                                0       // Hintergrundbeleuchtung immer aus
#define BACKGR_LIGHT_MAX                         31     // Hintergrundbeleuchtung immer an, z.Z.: Max = 5 Minuten
#define U_OFFSET                                                         85     // um type float o. double zu vermeiden *100
#define U_OFFSET_MIN                                            0
#define U_OFFSET_MAX                                    200
#define U_MIN                                                                   960     // um type float o. double zu vermeiden *100
#define U_MIN_MIN                                                       550     // auch für Lipo 2s
#define U_MIN_MAX                                                1400
#define CHANNEL                                                                 1       // default Wert
#define CHANNEL_MIN                                                     1
#define CHANNEL_MAX                                                     7
#define AV_SOURCE                                                               0       // av1, av2, diversity
#define AV_SOURCE_MIN                                           0
#define AV_SOURCE_MAX                                           2
/* Toleranzen bei den RSSI-Spannungen ausgleichen */
#define UDBM_MIN                                                        460     // RSSI geringste Feldstärke
#define UDBM_MAX                                                         75     // RSSI größte Feldstärke
#define UDBM_KORR_FA                                    128     // Korrekturfaktor 1 * 128 RSSI1 korrigieren
/* Servo */
#define SERVO_PAN                                                               0
#define SERVO_TILT                                                      1
#define SERVO_NUM_CHANNELS                      2       // Anzahl der angeschlossen Servos max. 2!!!
/* Servokalibrierungen derzeit zu SERVO_STEPS = 255 skaliert */
//prescaler 256
#define SERVO_I0_RIGHT                           45     // default Wert, ca. 0,9ms
#define SERVO_I0_RIGHT_MIN                      0       // Servokalibrierung Grenze der linken Position
#define SERVO_I0_RIGHT_MAX              100     // SERVO_MIN + SERVO_RIGHT
#define SERVO_I0_LEFT                                    45     // default Wert, ca. 2,1ms
#define SERVO_I0_LEFT_MIN                               0       // Servokalibrierung Grenze der rechten Position
#define SERVO_I0_LEFT_MAX                       100     // SERVO_MAX - SERVO_LEFT
#define SERVO_I0_MIDDLE                         SERVO_STEPS/2
#define SERVO_I0_MIDDLE_MIN             SERVO_STEPS/2 - 25
#define SERVO_I0_MIDDLE_MAX             SERVO_STEPS/2 + 25
//prescaler 64
#define SERVO_I1_RIGHT                          180     // default Wert, ca. 0,9ms
#define SERVO_I1_RIGHT_MIN                      0       // Servokalibrierung Grenze der linken Position
#define SERVO_I1_RIGHT_MAX              400     // SERVO_MIN + SERVO_RIGHT
#define SERVO_I1_LEFT                                   180     // default Wert, ca. 2,1ms
#define SERVO_I1_LEFT_MIN                               0       // Servokalibrierung Grenze der rechten Position
#define SERVO_I1_LEFT_MAX                       400     // SERVO_MAX - SERVO_LEFT
//#define SERVO_I1_MIDDLE                               ((SERVO_STEPS + 1) * 4 - 1)/2
#define SERVO_I1_MIDDLE_MIN             ((SERVO_STEPS + 1) * 4 - 1)/2 - 100
#define SERVO_I1_MIDDLE_MAX             ((SERVO_STEPS + 1) * 4 - 1)/2 + 100

#define SERVO_REV                                                               0       // kein Reverse
/* Test Servo */
#define SERVO_PERIODE                                    20     // default Angabe in ms
#define SERVO_PERIODE_MIN                        10     // 10ms
#define SERVO_PERIODE_MAX                        30     // 30ms
#define SINGLE_STEP                                                     0       // Einzelschritt aus
#define SINGLE_STEP_MIN                                 0
#define SINGLE_STEP_MAX                          20     // bei prescaler 256, sonst * 4 (von links nach rechts in 9 Abschnitte)
                                                                                                                                        // zwischen den Schritten muss Pause > der Servoperiode sein, sonst keine Aktualisierung

#define REPEAT                                                                  1
#define REPEAT_MIN                                                      1
#define REPEAT_MAX                                              100
#define PAUSE                                                                    10
#define PAUSE_MIN                                                               4       // mindestens 400ms, da mechanischer Servo-Lauf zur Position berücksichtigt werden muss
#define PAUSE_MAX                                                        20     // Pause pro Links-, Mittel- und Rechtsposition 10*100ms
#define PAUSE_STEP                                                      0
#define PAUSE_STEP_MIN                                  0       // Pause bei jeden Servoschritt in ms
#define PAUSE_STEP_MAX                          200
/* Antennen-Nachführung */
#define TRACKING_MIN                                            0       // aus, TRACKING_RSSI, TRACKING_GPS, TRACKING_MKCOCKPIT, TRACKING_NMEA
#define TRACKING_MAX                                            4
/* Antennen-Nachführung per RSSI */
#define TRACKING_HYSTERESE               40     // Hysterese bevor Tracking bei Richtungswechsel anspricht
#define TRACKING_HYST_MIN                               0
#define TRACKING_HYST_MAX                       100
/* MK Akku-Kapazität */
#define AKKU_NR_MIN                                                     0
#define AKKU_NR_MAX                                                     9
#define AKKU_CAPACITY                            2500   // in mAh für Ermittlung verbleibende Flugzeit
#define AKKU_CAPACITY_MIN                1000
#define AKKU_CAPACITY_MAX                6000
#define MK_I_OFFSET                                                     8       // Standart 0.3
#define MK_I_OFFSET_MIN                                 0       // -0.5 (+0,5A ist auch der vom MK gesendete konstante Offset)
#define MK_I_OFFSET_MAX                          20
#define MK_I_OFFSET_5                                           5       // entspricht -0.5
#define MK_I_FAKTOR                                              80
#define MK_I_FAKTOR_MIN                          30     // Angabe * 100
#define MK_I_FAKTOR_MAX                         200
#define MK_W_FAKTOR                                              80
#define MK_W_FAKTOR_MIN                          30
#define MK_W_FAKTOR_MAX                         200

#endif /* CONFIG_H_ */