56,8 → 56,8 |
unsigned char SendVersionToNavi = 1; |
// -- Parametersatz aus EEPROM lesen --- |
// number [1..5] |
void ReadParameterSet(unsigned char number, unsigned char *buffer, unsigned char length) |
{ |
|
void ReadParameterSet(unsigned char number, unsigned char *buffer, unsigned char length) { |
if((number > 5)||(number < 1)) number = 3; |
eeprom_read_block(buffer, &EEPromArray[EEPROM_ADR_PARAM_BEGIN + length * (number - 1)], length); |
LED_Init(); |
65,8 → 65,8 |
|
// -- Parametersatz ins EEPROM schreiben --- |
// number [1..5] |
void WriteParameterSet(unsigned char number, unsigned char *buffer, unsigned char length) |
{ |
|
void WriteParameterSet(unsigned char number, unsigned char *buffer, unsigned char length) { |
if(number > 5) number = 5; |
if(number < 1) return; |
eeprom_write_block(buffer, &EEPromArray[EEPROM_ADR_PARAM_BEGIN + length * (number - 1)], length); |
74,12 → 74,10 |
LED_Init(); |
} |
|
unsigned char GetActiveParamSetNumber(void) |
{ |
unsigned char GetActiveParamSetNumber(void) { |
unsigned char set; |
set = eeprom_read_byte(&EEPromArray[EEPROM_ADR_ACTIVE_SET]); |
if((set > 5) || (set < 1)) |
{ |
if ((set > 5) || (set < 1)) { |
set = 3; |
SetActiveParamSetNumber(set); // diesen Parametersatz als aktuell merken |
} |
86,36 → 84,30 |
return(set); |
} |
|
|
void SetActiveParamSetNumber(unsigned char number) |
{ |
void SetActiveParamSetNumber(unsigned char number) { |
if(number > 5) number = 5; |
if(number < 1) return; |
eeprom_write_byte(&EEPromArray[EEPROM_ADR_ACTIVE_SET], number); // diesen Parametersatz als aktuell merken |
} |
|
|
void CalMk3Mag(void) |
{ |
void CalMk3Mag(void) { |
static unsigned char stick = 1; |
|
if(PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > -20) stick = 0; |
if((PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < -70) && !stick) |
{ |
if ((PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < -70) && !stick) { |
stick = 1; |
WinkelOut.CalcState++; |
if(WinkelOut.CalcState > 4) |
{ |
if (WinkelOut.CalcState > 4) { |
// WinkelOut.CalcState = 0; // in Uart.c |
beeptime = 1000; |
} else Piep(WinkelOut.CalcState); |
} |
else Piep(WinkelOut.CalcState); |
} |
DebugOut.Analog[19] = WinkelOut.CalcState; |
} |
|
//############################################################################ |
//Hauptprogramm |
|
int main (void) |
//############################################################################ |
{ |
125,13 → 117,10 |
DDRB = 0x00; |
PORTB = 0x00; |
for(timer = 0; timer < 1000; timer++); // verzögern |
if(PINB & 0x01) |
{ |
if (PINB & 0x01) { |
if(PINB & 0x02) PlatinenVersion = 13; |
else PlatinenVersion = 11; |
} |
else |
{ |
} else { |
if(PINB & 0x02) PlatinenVersion = 20; |
else PlatinenVersion = 10; |
} |
152,7 → 141,10 |
|
beeptime = 2000; |
|
StickGier = 0; PPM_in[K_GAS] = 0;StickRoll = 0; StickNick = 0; |
StickGier = 0; |
PPM_in[K_GAS] = 0; |
StickRoll = 0; |
StickNick = 0; |
|
ROT_OFF; |
|
174,18 → 166,14 |
ReadParameterSet(3, (unsigned char *) &EE_Parameter.Kanalbelegung[0], 9); // read only the first bytes |
// valid Stick-Settings? |
if(eeprom_read_byte(&EEPromArray[EEPROM_ADR_VALID]) == 255 || eeprom_read_byte(&EEPromArray[EEPROM_ADR_VALID]) < EE_DATENREVISION || |
EE_Parameter.Kanalbelegung[0] > 9 || EE_Parameter.Kanalbelegung[1] > 9 || EE_Parameter.Kanalbelegung[2] > 9 || EE_Parameter.Kanalbelegung[3] > 9) |
{ |
EE_Parameter.Kanalbelegung[0] > 9 || EE_Parameter.Kanalbelegung[1] > 9 || EE_Parameter.Kanalbelegung[2] > 9 || EE_Parameter.Kanalbelegung[3] > 9) { |
printf("\n\rInit. EEPROM: Generating Default-Parameter and Stick-Settings..."); |
DefaultStickMapping(); |
} |
else if(eeprom_read_byte(&EEPromArray[EEPROM_ADR_VALID]) != EE_DATENREVISION) printf("\n\rInit. EEPROM: Generating Default-Parameter using old Stick Settings"); |
} else if (eeprom_read_byte(&EEPromArray[EEPROM_ADR_VALID]) != EE_DATENREVISION) printf("\n\rInit. EEPROM: Generating Default-Parameter using old Stick Settings"); |
|
if(eeprom_read_byte(&EEPromArray[EEPROM_ADR_VALID]) != EE_DATENREVISION) |
{ |
if (eeprom_read_byte(&EEPromArray[EEPROM_ADR_VALID]) != EE_DATENREVISION) { |
DefaultKonstanten1(); |
for (unsigned char i=1;i<6;i++) |
{ |
for (unsigned char i = 1; i < 6; i++) { |
if(i==2) DefaultKonstanten2(); // Kamera |
if(i==3) DefaultKonstanten3(); // Beginner |
if(i>3) DefaultKonstanten2(); // Kamera |
195,8 → 183,7 |
eeprom_write_byte(&EEPromArray[EEPROM_ADR_VALID], EE_DATENREVISION); |
} |
|
if(eeprom_read_byte(&EEPromArray[EEPROM_ADR_ACC_NICK]) > 4) |
{ |
if (eeprom_read_byte(&EEPromArray[EEPROM_ADR_ACC_NICK]) > 4) { |
printf("\n\rACC nicht abgeglichen!"); |
} |
|
204,8 → 191,7 |
printf("\n\rBenutze Parametersatz %d", GetActiveParamSetNumber()); |
|
|
if(EE_Parameter.GlobalConfig & CFG_HOEHENREGELUNG) |
{ |
if (EE_Parameter.GlobalConfig & CFG_HOEHENREGELUNG) { |
printf("\n\rAbgleich Luftdrucksensor.."); |
timer = SetDelay(1000); |
SucheLuftruckOffset(); |
230,8 → 216,7 |
LcdClear(); |
I2CTimeout = 5000; |
WinkelOut.Orientation = 1; |
while (1) |
{ |
while (1) { |
|
if(UpdateMotor) // ReglerIntervall |
{ |
243,8 → 228,7 |
SendMotorData(); |
ROT_OFF; |
if(PcZugriff) PcZugriff--; |
else |
{ |
else { |
ExternControl.Config = 0; |
ExternStickNick = 0; |
ExternStickRoll = 0; |
251,33 → 235,24 |
ExternStickGier = 0; |
} |
if(SenderOkay) SenderOkay--; |
if(!I2CTimeout) |
{ |
if (!I2CTimeout) { |
I2CTimeout = 5; |
i2c_reset(); |
if((BeepMuster == 0xffff) && MotorenEin) |
{ |
if ((BeepMuster == 0xffff) && MotorenEin) { |
beeptime = 10000; |
BeepMuster = 0x0080; |
} |
} |
else |
{ |
} else { |
I2CTimeout--; |
ROT_OFF; |
} |
if(SIO_DEBUG && (!UpdateMotor || !MotorenEin)) |
{ |
if (SIO_DEBUG && (!UpdateMotor || !MotorenEin)) { |
DatenUebertragung(); |
BearbeiteRxDaten(); |
} |
else BearbeiteRxDaten(); |
if(CheckDelay(timer)) |
{ |
if(UBat < EE_Parameter.UnterspannungsWarnung) |
{ |
if(BeepMuster == 0xffff) |
{ |
} else BearbeiteRxDaten(); |
if (CheckDelay(timer)) { |
if (UBat < EE_Parameter.UnterspannungsWarnung) { |
if (BeepMuster == 0xffff) { |
beeptime = 6000; |
BeepMuster = 0x0300; |
} |
297,8 → 272,10 |
//if(UpdateMotor) DebugOut.Analog[26]++; |
LED_Update(); |
} |
if(!SendSPI) { SPI_TransmitByte(); } |
if (!SendSPI) { |
SPI_TransmitByte(); |
} |
} |
return (1); |
} |
|