Subversion Repositories FlightCtrl

Compare Revisions

Regard whitespace Rev 1125 → Rev 1126

/branches/thjac/V1_10/main.c
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);
}