0,0 → 1,208 |
|
/****************************************************************/ |
/* */ |
/* 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 NGVIDEO_H_ |
#define NGVIDEO_H_ |
|
#include "config.h" |
#include "messages.h" |
#include "servo.h" |
#include "dogm.h" |
#include "menue.h" |
#include "lipo.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 nach Enter kurz Scroll_Menu() und Select_Menu() |
#define DBEEPWR 4 // Beep on nach geänderten Werte ROM schreiben |
#define DBEEPWRP 30 // Beep Pause nach geänderten 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 DBEEPNMEAFIX 120 // Beep on nach NMEA SAT-FIX |
#define DBEEPMEAFIXP 240 // Beep Pause nach NMEA SAT-FIX |
|
#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 getBaud(x) (uint16_t)pgm_read_dword(&baud[x]) |
extern const uint16_t PROGMEM baud[8]; |
|
#define POLOLU_CMD 2 |
|
#define OFF 0 |
#define ON 1 |
|
#define EEPROM __attribute__ ((section(".eeprom"))) |
|
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; |
|
/**************************************************************/ |
/* */ |
/* EEPROM */ |
/* */ |
/**************************************************************/ |
extern uint8_t ep_eep_init EEPROM; |
extern char ep_version[sizeof(VERSION)] EEPROM; |
extern uint8_t ep_dogm_vers EEPROM; |
extern uint8_t ep_contrast EEPROM; |
extern uint8_t ep_light_time EEPROM; |
extern uint8_t ep_u_offset EEPROM; |
extern uint16_t ep_u_min EEPROM; |
extern uint8_t ep_channel EEPROM; |
extern uint8_t ep_av_source EEPROM; |
extern uint8_t ep_language EEPROM; |
extern udbm_t ep_udbm[CHANNEL_MAX] EEPROM; |
extern uint8_t ep_sIdxSteps EEPROM; |
extern servo_t ep_servo[SERVO_NUM_CHANNELS] EEPROM; |
extern uint8_t ep_servo_frame EEPROM; |
extern uint8_t ep_servo_nr EEPROM; |
extern uint8_t ep_single_step EEPROM; |
extern uint8_t ep_repeat EEPROM; |
extern uint8_t ep_pause EEPROM; |
extern uint8_t ep_pause_step EEPROM; |
extern uint8_t ep_tracking EEPROM; |
extern uint8_t ep_track_hyst EEPROM; |
extern uint8_t ep_track_tx EEPROM; |
extern uint8_t ep_baudrate EEPROM; |
extern mk_current_t ep_mk_current EEPROM; |
extern uint8_t ep_mk_akku_nr EEPROM; |
extern mk_lipo_t ep_mk_lipo[AKKU_NR_MAX+1] EEPROM; |
extern uint8_t ep_mk_i_offset EEPROM; |
extern uint8_t ep_mk_i_faktor EEPROM; |
extern uint8_t ep_mk_w_faktor EEPROM; |
|
/**************************************************************/ |
// Working variables of EEPROM contents |
extern uint8_t eep_init; |
extern char version[sizeof(VERSION)]; |
extern uint8_t dogm_vers; |
extern uint8_t contrast; |
extern uint8_t light_time; |
extern uint8_t u_offset; |
extern uint16_t u_min; |
extern uint8_t channel; |
extern uint8_t av_source; |
extern uint8_t language; |
extern udbm_t udbm; |
extern uint8_t sIdxSteps; |
extern servo_t servo[SERVO_NUM_CHANNELS]; |
extern uint8_t servo_frame; |
extern uint8_t servo_nr; |
extern uint8_t single_step; |
extern uint8_t repeat; |
extern uint8_t pause; |
extern uint8_t pause_step; |
extern uint8_t tracking; |
extern uint8_t track_hyst; |
extern uint8_t track_tx; |
extern uint8_t baudrate; |
extern uint8_t ch_stored; // Flag zur Speicherung, wenn Wert im Hauptdisplay geändert |
|
/**************************************************************/ |
extern uint8_t coldstart; // Flag erstmaliger MK-Start(Motore) nur nach GPS-Fix |
extern uint8_t bat_low; |
extern uint16_t hyst_u_min; |
extern uint8_t gps_display; |
extern uint8_t gps_disp_clear; |
extern uint8_t sw_avx; |
extern uint16_t bar_udbm[12]; |
|
extern uint8_t MK_Motor_run; // Flag für RX Time-Counter Start/Stop |
extern uint8_t mk_timer; // Zeitzähler lipo.time_on auf aus |
|
extern volatile uint32_t rxcount0; |
extern volatile uint32_t rxcount1; |
|
extern SpecialChr_t lcdSpecialChr[7]; |
extern SpecialChr_t lcdSpecialChrLs[8]; |
extern SpecialChr_t lcdSpecialChrRs[5]; |
|
void Init_EEPROM(uint8_t ep_reset); |
void servoSetDefaultPos(void); |
void Set_DOGM_Version(void); |
void Set_Channel(uint8_t channel); |
uint8_t Set_AV_Source(uint8_t src); |
|
void lcdSet_BackgrLight_Off(void); |
void lcd_BackgrLight_On(void); |
void lcd_BackgrLight(void); |
|
void ADC_Init(void); |
uint16_t ADC_Read( uint8_t channel ); |
|
void Beep(uint8_t time); |
void Double_Beep(uint8_t time, uint8_t pause); |
|
void Displ_VBat(void); |
void Displ_U_2Nk(uint16_t u); |
|
uint8_t RSSI_Calc_UdBm(uint16_t *pbar_udbm); |
uint8_t RSSI_Min_Calibrate(uint8_t nchannel, uint16_t *pbar_udbm); |
void RSSI_Max_Calibrate(uint16_t *pbar_udbm); |
|
void USART_Init_Baudrate(void); |
void Double_Beep(uint8_t time, uint8_t pause); |
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); |
uint16_t U_Messen_cmp(uint8_t beep_timer); |
|
void Task_0_1(void); |
void Task_0_2(void); |
void Task_0_3(void); |
void Task_0_4(void); |
void Task_0_5(void); |
void Tasks_invisible(void); |
|
#endif /* NGVIDEO_H_ */ |