0,0 → 1,198 |
|
/****************************************************************/ |
/* */ |
/* 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 */ |
/* */ |
/****************************************************************/ |
|
#ifndef SETTING_H_ |
#define SETTING_H_ |
|
/* Indexwerte für av_source bzw. zur Auswertung von av_source */ |
#define AV1 0 |
#define AV2 1 |
#define DIVERSITY 2 |
|
#define MARKER_SELECT 0xfc // 0xfc enspricht '>>' Menue-Marker |
#define MARKER_AV 0xfb // 0xfb enspricht '<<' Diversity AV-Marker |
#define MARKER_RSSI 'd' // Diversity, wenn RX umschaltet mittels RSSI-Wert |
#define MARKER_SYNC 's' // Diversity, wenn RX umschaltet auf Grund der Bildsynchronisation |
|
#define SET_MUX_0 PORTA &= ~(1<<MUX_IN); // MUX SxA enabled |
#define SET_MUX_1 PORTA |= (1<<MUX_IN); // MUX SxB enabled |
#define CLEAR_INT10 EIMSK &= ~((1<<INT1) | (1<<INT0)); // Interrupt für Sync ausschalten |
#define SET_INT10 EIMSK |= (1<<INT1) | (1<<INT0); // External Interrupt Mask Register ein |
|
/* Beep Verzögerungszeitein */ |
#define DBEEPVERS 2 // Beep on nach Versionsanzeige |
#define DBEEPVERSP 30 // Beep Pause nach Versionsanzeige |
#define BEEPENTER 1 // Beep on Enter kurz Scroll_Menu() und Select_Menu() |
#define DBEEPWR 4 // Beep on geänderte Werte ROM schreiben |
#define DBEEPWRP 30 // Beep Pause geänderte Werte ROM schreiben |
#define BEEPBAT 20 // Beep on bei Akku low |
#define BEEP_LOW_TIME 240 // TIMER0_1 aller 500ms aufgerufen, BeepIntervall Akku leer mit 2 Min Abstand beginnen |
|
#define ENABLE_BTIMER 1 // damit Intervall Beeper für Akku leer mit TIMER0_1 gesteuert wird |
#define DISABLE_BTIMER 0 |
|
#define GPS_DISP_NONE 0 // Anzeigen bei Antennennachführung per WI232 und GPS |
#define GPS_DISP_CALC 1 |
#define GPS_DISP_CURRENT 2 |
#define GPS_DISP_HOME 3 |
#define GPS_MISC 4 |
#define GPS_RX_COUNT 5 |
|
#define BAUDRATE 5 // für Antennennachführung mittels MKCockpit |
#define BAUDRATE_MIN 0 |
#define BAUDRATE_MAX 6 |
|
#define POLOLU_CMD 2 |
|
#define OFF 0 |
#define ON 1 |
|
#define EEPROM __attribute__ ((section(".eeprom"))) |
|
uint32_t baud[8] = {4800, 7200, 9600, 14400, 19200, 38400, 57600}; |
|
typedef struct { |
uint8_t rev; |
uint16_t min; |
uint16_t max; |
uint16_t mid; |
} servo_t; |
|
typedef struct |
{ uint16_t min; |
uint16_t max; |
uint16_t korr_1; |
uint16_t korr_2; |
} udbm_t; |
|
typedef struct |
{ |
uint16_t u0; |
uint16_t u1; |
} adc_avg_t; |
|
typedef struct |
{ |
uint16_t min; |
uint16_t max; |
} clipo_t; |
|
typedef struct |
{ |
uint8_t Umk; |
uint16_t Capacity; |
uint16_t UsedCapacity; |
uint32_t time_on; |
} lipo_t; |
|
typedef struct |
{ |
uint32_t Sum; |
uint16_t Count; |
} current_t; |
|
/**************************************************************/ |
/* */ |
/* EEPROM */ |
/* */ |
/**************************************************************/ |
static uint8_t ep_eep_init EEPROM; |
static char ep_version[sizeof(VERSION)] EEPROM; |
static uint8_t ep_dogm_vers EEPROM; |
static uint8_t ep_contrast EEPROM; |
static uint8_t ep_light_time EEPROM; |
static uint8_t ep_u_offset EEPROM; |
static uint32_t ep_u_min EEPROM; |
static uint8_t ep_channel EEPROM; |
static uint8_t ep_av_source EEPROM; |
static uint8_t ep_language EEPROM; |
static udbm_t ep_udbm[CHANNEL_MAX] EEPROM; |
static uint8_t ep_sIdxSteps EEPROM; |
static servo_t ep_servo[SERVO_NUM_CHANNELS][sizeof(servo_t)] EEPROM; |
static uint8_t ep_servo_frame EEPROM; |
static uint8_t ep_servo_nr EEPROM; |
static uint8_t ep_single_step EEPROM; |
static uint8_t ep_repeat EEPROM; |
static uint8_t ep_pause EEPROM; |
static uint8_t ep_pause_step EEPROM; |
static uint8_t ep_tracking EEPROM; |
static uint8_t ep_track_hyst EEPROM; |
static uint8_t ep_track_tx EEPROM; |
static uint8_t ep_baudrate EEPROM; |
static current_t ep_current EEPROM; |
static uint8_t ep_akku_nr EEPROM; |
static lipo_t ep_lipo[AKKU_NR_MAX+1] EEPROM; |
static uint8_t ep_mk_i_offset EEPROM; |
static uint8_t ep_mk_i_faktor EEPROM; |
static uint8_t ep_mk_w_faktor EEPROM; |
|
uint8_t dogm_vers; |
uint8_t contrast; |
uint8_t light_time = BACKGR_LIGHT_MAX; |
uint8_t backgr_light = OFF; |
uint8_t u_offset = U_OFFSET; |
uint32_t u_min = U_MIN; |
uint8_t channel = CHANNEL; |
uint8_t av_source = AV_SOURCE; |
uint8_t language = NO_LANGUAGE; |
udbm_t udbm = {UDBM_MIN, UDBM_MAX, UDBM_KORR_FA, UDBM_KORR_FA}; |
uint32_t hyst_u_min; |
servo_t servo[SERVO_NUM_CHANNELS] = {{SERVO_REV, SERVO_I0_RIGHT, SERVO_I0_LEFT, SERVO_I0_MIDDLE},\ |
{SERVO_REV, SERVO_I0_RIGHT, SERVO_I0_LEFT, SERVO_I0_MIDDLE}}; |
uint8_t servo_frame = SERVO_PERIODE; |
uint8_t single_step = SINGLE_STEP; |
uint8_t repeat = REPEAT; |
uint8_t pause = PAUSE; |
uint8_t pause_step = PAUSE_STEP; |
uint8_t tracking = TRACKING_MIN; |
uint8_t track_hyst = TRACKING_HYSTERESE; |
uint8_t track_tx = 0; |
uint8_t baudrate = BAUDRATE; |
current_t current = {0, 0}; |
uint8_t akku_nr = AKKU_NR_MIN; |
lipo_t lipo = {0xff, AKKU_CAPACITY, 0, 0}; // Umk 255 ==> erste Inbetriebnahme keine Nachfrage Akku-Nr. |
uint8_t mk_i_offset = MK_I_OFFSET; |
uint8_t mk_i_faktor = MK_I_FAKTOR; |
uint8_t mk_w_faktor = MK_W_FAKTOR; |
|
uint8_t gps_display = 0; |
uint8_t gps_disp_clear; |
|
uint8_t RSSI_Calc_UdBm(uint16_t *pbar_udbm); |
uint8_t Set_AV_Source(uint8_t src); |
|
uint16_t bar_udbm[12]; // RSSI-Bargraph |
uint16_t* pbar_udbm = bar_udbm; |
uint8_t wudbm; // Differenz/Abstand benachbarter udbm[i] für differenzierteren Bargraphen |
uint8_t bat_low = 1; |
uint8_t sw_avx; // steuert über Set_AV_Source() oder rssi_diversity(av_source) Marker-Position und RX-Umschaltung |
uint8_t mux_X; // berücksichtigt Schaltung auf Grund Synchronisation und RSSI (sw_avx meist RSSI) RX-Zählung |
uint8_t MK_Motor_run = 0; // Flag für RX Time-Counter Start/Stop |
uint8_t mk_timer = 0; // Zeitzähler lipo.time_on auf aus |
uint8_t exit_while = 0; // unabhängige Task (z.B: Menu_MK_BatteryChangeNr() - Aufruf) kann Eingabe while-Schleife beenden, wenn 1 |
|
volatile uint8_t vsync0; |
volatile uint8_t vsync1; |
volatile uint8_t vscount0; |
volatile uint8_t vscount1; |
volatile uint32_t rxcount0 = 0; |
volatile uint32_t rxcount1 = 0; |
|
uint16_t ADC_Read( uint8_t channel ); |
void servoSetDefaultPos(void); |
void USART_Init_Baudrate(void); |
void Double_Beep(uint8_t time, uint8_t pause); |
char* my_itoa(int32_t zahl, uint8_t Vorz, uint8_t len, uint8_t Festkomma, uint8_t Nachkomma); |
void Displ_TimeMS(int32_t time); |
|
|
#endif /* SETTING_H_ */ |