Rev 2248 |
Blame |
Compare with Previous |
Last modification |
View Log
| RSS feed
/*****************************************************************************************************************************
* File: eeprom.c
*
* Purpose: storing or loading the EEPROM values to RAM or writing them to EE_Parameter
*
* Functions: void DefaultStickMapping(void) // stick setting at RC control for incoming sum signal chain
* void DefaultKonstanten3(void) //
* void DefaultKonstanten2(void) //
* void DefaultKonstanten1(void) //
* void ReadParameterSet(unsigned char number, unsigned char *buffer, unsigned char length)
* void WriteParameterSet(unsigned char number, unsigned char *buffer, unsigned char length)
* unsigned char GetActiveParamSetNumber(void)
* void SetActiveParamSetNumber(unsigned char number)
*
*****************************************************************************************************************************/
#include "eeprom.h"
unsigned char EEPromArray
[E2END
+1] EEMEM
; // E2END = 2047
// wird im EEPROM deklariert
// in den I/O-Headern wird die letzte EEPROM-Adresse als E2END definiert
// #define EEMEM __attribute__ ((section (".eeprom")))
// EEPROM Size = 2 Kbytes // Page Size = 8 bytes // No. of Pages = 256 // siehe Atmega644 manual S287
// ---------------------------------------------------------------------------------------------------------------------------
// + Konstanten
// + 0-250 -> normale Werte
// + 251 -> Poti1
// + 252 -> Poti2
// + 253 -> Poti3
// ---------------------------------------------------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------------------------------------------------
// stick setting at RC control for incoming sum signal chain
//-----------------------------------------------------------------------------------------------------------------------------
void DefaultStickMapping
(void) // remote control is set to mode 2
{
EE_Parameter.
Kanalbelegung[K_NICK
] = 3; // #define K_NICK 0 // Koptertool -> Einstellungen -> Kanäle -> "NICK"
EE_Parameter.
Kanalbelegung[K_ROLL
] = 2; // #define K_ROLL 1 // Koptertool -> Einstellungen -> Kanäle -> "ROLL"
EE_Parameter.
Kanalbelegung[K_GAS
] = 1; // #define K_GAS 2 // Koptertool -> Einstellungen -> Kanäle -> "GAS"
EE_Parameter.
Kanalbelegung[K_GIER
] = 4; // #define K_GIER 3 // Koptertool -> Einstellungen -> Kanäle -> "Gier"
EE_Parameter.
Kanalbelegung[K_POTI1
] = 5; // #define K_POTI1 4 // Koptertool -> Einstellungen -> Kanäle -> "POTI1"
EE_Parameter.
Kanalbelegung[K_POTI2
] = 6; // #define K_POTI2 5 // Koptertool -> Einstellungen -> Kanäle -> "POTI2"
EE_Parameter.
Kanalbelegung[K_POTI3
] = 7; // #define K_POTI3 6 // Koptertool -> Einstellungen -> Kanäle -> "POTI3"
EE_Parameter.
Kanalbelegung[K_POTI4
] = 8; // #define K_POTI4 7 // Koptertool -> Einstellungen -> Kanäle -> "POTI4"
}
//-----------------------------------------------------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------------------------------------------------
void DefaultKonstanten3
(void)
{
EE_Parameter.
GlobalConfig = CFG_KOMPASS_AKTIV
;
//
// #define CFG_HOEHENREGELUNG 0x01
// #define CFG_HOEHEN_SCHALTER 0x02
// #define CFG_HEADING_HOLD 0x04
// #define CFG_KOMPASS_AKTIV 0x08
// #define CFG_KOMPASS_FIX 0x10
// #define CFG_GPS_AKTIV 0x20
// #define CFG_ACHSENKOPPLUNG_AKTIV 0x40
// #define CFG_DREHRATEN_BEGRENZER 0x80
EE_Parameter.
ExtraConfig = CFG2_HEIGHT_LIMIT
;
//
// #define CFG2_HEIGHT_LIMIT 0x01 // Koptertool -> Einstellungen -> Höhe -> Höhenregelung aktiv -> "Höhenbegrenzung"
// #define CFG2_VARIO_BEEP 0x02 // Koptertool -> Einstellungen -> Höhe -> Höhenregelung aktiv -> "akustisches Variometer"
// #define CFG_SENSITIVE_RC 0x04 // Koptertool -> Einstellungen -> Konfiguration -> "Erweiterte Empfangssignalprüfung"
// #define CFG_3_3V_REFERENCE 0x08 // Koptertool -> Einstellungen -> Verschiedenes -> "Voltage Reference" 3.0V
// #define CFG_NO_RCOFF_BEEPING 0x10 // Koptertool -> Einstellungen -> Verschiedenes -> "kein Signalton ohne aktiven Empfänger"
// #define CFG_GPS_AID 0x20 // Koptertool -> ???
// #define CFG_LEARNABLE_CAREFREE 0x40 // Koptertool -> Einstellungen -> Easy Setup -> "Teachable Carefree"
// #define CFG_IGNORE_MAG_ERR_AT_STARTUP 0x80
EE_Parameter.
Hoehe_MinGas = 30;
EE_Parameter.
MaxHoehe = 251; // Wert : 0-250 251 -> Poti1
EE_Parameter.
Hoehe_P = 10; // Wert : 0-32
EE_Parameter.
Luftdruck_D = 30; // Wert : 0-250
EE_Parameter.
Hoehe_ACC_Wirkung = 30; // Wert : 0-250
EE_Parameter.
Hoehe_HoverBand = 5; // Wert : 0-250
EE_Parameter.
Hoehe_GPS_Z = 64; // Wert : 0-250
EE_Parameter.
Hoehe_StickNeutralPoint = 0; // Wert : 0-250 (0 = Hoover-Estimation)
EE_Parameter.
Hoehe_Verstaerkung = 15; // Wert : 0-50
EE_Parameter.
Stick_P = 8; // Wert : 1-6
EE_Parameter.
Stick_D = 16; // Wert : 0-64
EE_Parameter.
Gier_P = 6; // Wert : 1-20
EE_Parameter.
Gas_Min = 8; // Wert : 0-32
EE_Parameter.
Gas_Max = 230; // Wert : 33-250
EE_Parameter.
GyroAccFaktor = 30; // Wert : 1-64
EE_Parameter.
KompassWirkung = 128; // Wert : 0-250
EE_Parameter.
Gyro_P = 100; // Wert : 0-250
EE_Parameter.
Gyro_I = 120; // Wert : 0-250
EE_Parameter.
Gyro_D = 3; // Wert : 0-250
EE_Parameter.
Gyro_Gier_P = 100; // Wert : 0-250
EE_Parameter.
Gyro_Gier_I = 120; // Wert : 0-250
EE_Parameter.
UnterspannungsWarnung = 33; // Wert : 0-250 // Automatische Zellenerkennung bei < 50
EE_Parameter.
NotGas = 35; // Wert : 0-250 // Gaswert bei Empangsverlust
EE_Parameter.
NotGasZeit = 20; // Wert : 0-250 // Zeit bis auf NotGas geschaltet wird, wg. Rx-Problemen
EE_Parameter.
UfoAusrichtung = 0; // X oder + Formation
EE_Parameter.
I_Faktor = 16;
EE_Parameter.
UserParam1 = 0; // zur freien Verwendung
EE_Parameter.
UserParam2 = 0; // zur freien Verwendung
EE_Parameter.
UserParam3 = 0; // zur freien Verwendung
EE_Parameter.
UserParam4 = 0; // zur freien Verwendung
EE_Parameter.
UserParam5 = 0; // zur freien Verwendung
EE_Parameter.
UserParam6 = 0; // zur freien Verwendung
EE_Parameter.
UserParam7 = 0; // zur freien Verwendung
EE_Parameter.
UserParam8 = 0; // zur freien Verwendung
EE_Parameter.
ServoNickControl = 100; // Wert : 0-250 // Stellung des Servos
EE_Parameter.
ServoNickComp = 40; // Wert : 0-250 // Einfluss Gyro/Servo
EE_Parameter.
ServoCompInvert = 1; // Wert : 0-250 // Richtung Einfluss Gyro/Servo
EE_Parameter.
ServoNickMin = 0; // Wert : 0-250 // Anschlag
EE_Parameter.
ServoNickMax = 250; // Wert : 0-250 // Anschlag
EE_Parameter.
ServoNickRefresh = 6;
EE_Parameter.
ServoRollControl = 100; // Wert : 0-250 // Stellung des Servos
EE_Parameter.
ServoRollComp = 40; // Wert : 0-250 // Einfluss Gyro/Servo
EE_Parameter.
ServoRollMin = 0; // Wert : 0-250 // Anschlag
EE_Parameter.
ServoRollMax = 250; // Wert : 0-250 // Anschlag
EE_Parameter.
LoopGasLimit = 50;
EE_Parameter.
LoopThreshold = 90; // Wert: 0-250 Schwelle für Stickausschlag
EE_Parameter.
LoopHysterese = 50;
EE_Parameter.
BitConfig = 0; // Bitcodiert: 0x01=oben, 0x02=unten, 0x04=links, 0x08=rechts
EE_Parameter.
AchsKopplung1 = 90;
EE_Parameter.
AchsKopplung2 = 80;
EE_Parameter.
CouplingYawCorrection = 70;
EE_Parameter.
WinkelUmschlagNick = 85;
EE_Parameter.
WinkelUmschlagRoll = 85;
EE_Parameter.
GyroAccAbgleich = 32; // 1/k
EE_Parameter.
Driftkomp = 32;
EE_Parameter.
DynamicStability = 50;
EE_Parameter.
J16Bitmask = 95;
EE_Parameter.
J17Bitmask = 243;
EE_Parameter.
WARN_J16_Bitmask = 0xAA;
EE_Parameter.
WARN_J17_Bitmask = 0xAA;
EE_Parameter.
J16Timing = 30;
EE_Parameter.
J17Timing = 30;
EE_Parameter.
NaviGpsModeControl = 252;
EE_Parameter.
NaviGpsGain = 100;
EE_Parameter.
NaviGpsP = 90;
EE_Parameter.
NaviGpsI = 90;
EE_Parameter.
NaviGpsD = 90;
EE_Parameter.
NaviGpsPLimit = 75;
EE_Parameter.
NaviGpsILimit = 75;
EE_Parameter.
NaviGpsDLimit = 75;
EE_Parameter.
NaviGpsACC = 0;
EE_Parameter.
NaviGpsMinSat = 6;
EE_Parameter.
NaviStickThreshold = 8;
EE_Parameter.
NaviWindCorrection = 90;
EE_Parameter.
NaviSpeedCompensation = 30;
EE_Parameter.
NaviOperatingRadius = 100;
EE_Parameter.
NaviAngleLimitation = 100;
EE_Parameter.
NaviPH_LoginTime = 4;
memcpy(EE_Parameter.
Name, "Beginner\0", 12);
}
//-----------------------------------------------------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------------------------------------------------
void DefaultKonstanten2
(void)
{
EE_Parameter.
GlobalConfig = CFG_ACHSENKOPPLUNG_AKTIV
| CFG_KOMPASS_AKTIV
| CFG_GPS_AKTIV
| CFG_HOEHEN_SCHALTER
;
EE_Parameter.
ExtraConfig = CFG2_HEIGHT_LIMIT
;// | CFG2_VARIO_BEEP | CFG_SENSITIVE_RC
EE_Parameter.
Hoehe_MinGas = 30;
EE_Parameter.
MaxHoehe = 251; // Wert : 0-250 251 -> Poti1
EE_Parameter.
Hoehe_P = 10; // Wert : 0-32
EE_Parameter.
Luftdruck_D = 30; // Wert : 0-250
EE_Parameter.
Hoehe_ACC_Wirkung = 30; // Wert : 0-250
EE_Parameter.
Hoehe_HoverBand = 5; // Wert : 0-250
EE_Parameter.
Hoehe_GPS_Z = 64; // Wert : 0-250
EE_Parameter.
Hoehe_StickNeutralPoint = 0; // Wert : 0-250 (0 = Hoover-Estimation)
EE_Parameter.
Hoehe_Verstaerkung = 15; // Wert : 0-50
EE_Parameter.
Stick_P = 10; // Wert : 1-6
EE_Parameter.
Stick_D = 16; // Wert : 0-64
EE_Parameter.
Gier_P = 6; // Wert : 1-20
EE_Parameter.
Gas_Min = 8; // Wert : 0-32
EE_Parameter.
Gas_Max = 230; // Wert : 33-250
EE_Parameter.
GyroAccFaktor = 30; // Wert : 1-64
EE_Parameter.
KompassWirkung = 128; // Wert : 0-250
EE_Parameter.
Gyro_P = 90; // Wert : 0-250
EE_Parameter.
Gyro_I = 120; // Wert : 0-250
EE_Parameter.
Gyro_D = 3; // Wert : 0-250
EE_Parameter.
Gyro_Gier_P = 90; // Wert : 0-250
EE_Parameter.
Gyro_Gier_I = 120; // Wert : 0-250
EE_Parameter.
UnterspannungsWarnung = 33; // Wert : 0-250 ( Automatische Zellenerkennung bei < 50)
EE_Parameter.
NotGas = 35; // Wert : 0-250 // Gaswert bei Empangsverlust
EE_Parameter.
NotGasZeit = 30; // Wert : 0-250 // Zeit bis auf NotGas geschaltet wird, wg. Rx-Problemen
EE_Parameter.
UfoAusrichtung = 0; // X oder + Formation
EE_Parameter.
I_Faktor = 32;
EE_Parameter.
UserParam1 = 0; // zur freien Verwendung
EE_Parameter.
UserParam2 = 0; // zur freien Verwendung
EE_Parameter.
UserParam3 = 0; // zur freien Verwendung
EE_Parameter.
UserParam4 = 0; // zur freien Verwendung
EE_Parameter.
UserParam5 = 0; // zur freien Verwendung
EE_Parameter.
UserParam6 = 0; // zur freien Verwendung
EE_Parameter.
UserParam7 = 0; // zur freien Verwendung
EE_Parameter.
UserParam8 = 0; // zur freien Verwendung
EE_Parameter.
ServoNickControl = 100; // Wert : 0-250 // Stellung des Servos
EE_Parameter.
ServoNickComp = 40; // Wert : 0-250 // Einfluss Gyro/Servo
EE_Parameter.
ServoCompInvert = 1; // Wert : 0-250 // Richtung Einfluss Gyro/Servo
EE_Parameter.
ServoNickMin = 0; // Wert : 0-250 // Anschlag
EE_Parameter.
ServoNickMax = 250; // Wert : 0-250 // Anschlag
EE_Parameter.
ServoNickRefresh = 6;
EE_Parameter.
ServoRollControl = 100; // Wert : 0-250 // Stellung des Servos
EE_Parameter.
ServoRollComp = 40; // Wert : 0-250 // Einfluss Gyro/Servo
EE_Parameter.
ServoRollMin = 0; // Wert : 0-250 // Anschlag
EE_Parameter.
ServoRollMax = 250; // Wert : 0-250 // Anschlag
EE_Parameter.
LoopGasLimit = 50;
EE_Parameter.
LoopThreshold = 90; // Wert: 0-250 Schwelle für Stickausschlag
EE_Parameter.
LoopHysterese = 50;
EE_Parameter.
BitConfig = 0; // Bitcodiert: 0x01=oben, 0x02=unten, 0x04=links, 0x08=rechts
EE_Parameter.
AchsKopplung1 = 90;
EE_Parameter.
AchsKopplung2 = 80;
EE_Parameter.
CouplingYawCorrection = 60;
EE_Parameter.
WinkelUmschlagNick = 85;
EE_Parameter.
WinkelUmschlagRoll = 85;
EE_Parameter.
GyroAccAbgleich = 32; // 1/k
EE_Parameter.
Driftkomp = 32;
EE_Parameter.
DynamicStability = 75;
EE_Parameter.
J16Bitmask = 95;
EE_Parameter.
J17Bitmask = 243;
EE_Parameter.
WARN_J16_Bitmask = 0xAA;
EE_Parameter.
WARN_J17_Bitmask = 0xAA;
EE_Parameter.
J16Timing = 20;
EE_Parameter.
J17Timing = 20;
EE_Parameter.
NaviGpsModeControl = 252;
EE_Parameter.
NaviGpsGain = 100;
EE_Parameter.
NaviGpsP = 90;
EE_Parameter.
NaviGpsI = 90;
EE_Parameter.
NaviGpsD = 90;
EE_Parameter.
NaviGpsPLimit = 75;
EE_Parameter.
NaviGpsILimit = 75;
EE_Parameter.
NaviGpsDLimit = 75;
EE_Parameter.
NaviGpsACC = 0;
EE_Parameter.
NaviGpsMinSat = 6;
EE_Parameter.
NaviStickThreshold = 8;
EE_Parameter.
NaviWindCorrection = 90;
EE_Parameter.
NaviSpeedCompensation = 30;
EE_Parameter.
NaviOperatingRadius = 100;
EE_Parameter.
NaviAngleLimitation = 100;
EE_Parameter.
NaviPH_LoginTime = 4;
memcpy(EE_Parameter.
Name, "Normal\0", 12);
}
//-----------------------------------------------------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------------------------------------------------
void DefaultKonstanten1
(void)
{
EE_Parameter.
GlobalConfig = CFG_ACHSENKOPPLUNG_AKTIV
| CFG_KOMPASS_AKTIV
| CFG_GPS_AKTIV
| CFG_HOEHEN_SCHALTER
;
EE_Parameter.
ExtraConfig = CFG2_HEIGHT_LIMIT
;// | CFG2_VARIO_BEEP | CFG_SENSITIVE_RC
EE_Parameter.
Hoehe_MinGas = 30;
EE_Parameter.
MaxHoehe = 251; // Wert : 0-250 251 -> Poti1
EE_Parameter.
Hoehe_P = 10; // Wert : 0-32
EE_Parameter.
Luftdruck_D = 30; // Wert : 0-250
EE_Parameter.
Hoehe_ACC_Wirkung = 30; // Wert : 0-250
EE_Parameter.
Hoehe_HoverBand = 5; // Wert : 0-250
EE_Parameter.
Hoehe_GPS_Z = 64; // Wert : 0-250
EE_Parameter.
Hoehe_StickNeutralPoint = 0; // Wert : 0-250 (0 = Hoover-Estimation)
EE_Parameter.
Hoehe_Verstaerkung = 20; // Wert : 0-50
EE_Parameter.
Stick_P = 14; // Wert : 1-6
EE_Parameter.
Stick_D = 16; // Wert : 0-64
EE_Parameter.
Gier_P = 12; // Wert : 1-20
EE_Parameter.
Gas_Min = 8; // Wert : 0-32
EE_Parameter.
Gas_Max = 230; // Wert : 33-250
EE_Parameter.
GyroAccFaktor = 30; // Wert : 1-64
EE_Parameter.
KompassWirkung = 128; // Wert : 0-250
EE_Parameter.
Gyro_P = 80; // Wert : 0-250
EE_Parameter.
Gyro_I = 150; // Wert : 0-250
EE_Parameter.
Gyro_D = 3; // Wert : 0-250
EE_Parameter.
Gyro_Gier_P = 80; // Wert : 0-250
EE_Parameter.
Gyro_Gier_I = 150; // Wert : 0-250
EE_Parameter.
UnterspannungsWarnung = 33; // Wert : 0-250 ( Automatische Zellenerkennung bei < 50)
EE_Parameter.
NotGas = 35; // Wert : 0-250 // Gaswert bei Empangsverlust
EE_Parameter.
NotGasZeit = 30; // Wert : 0-250 // Zeit bis auf NotGas geschaltet wird, wg. Rx-Problemen
EE_Parameter.
UfoAusrichtung = 0; // X oder + Formation
EE_Parameter.
I_Faktor = 32;
EE_Parameter.
UserParam1 = 0; // zur freien Verwendung
EE_Parameter.
UserParam2 = 0; // zur freien Verwendung
EE_Parameter.
UserParam3 = 0; // zur freien Verwendung
EE_Parameter.
UserParam4 = 0; // zur freien Verwendung
EE_Parameter.
UserParam5 = 0; // zur freien Verwendung
EE_Parameter.
UserParam6 = 0; // zur freien Verwendung
EE_Parameter.
UserParam7 = 0; // zur freien Verwendung
EE_Parameter.
UserParam8 = 0; // zur freien Verwendung
EE_Parameter.
ServoNickControl = 100; // Wert : 0-250 // Stellung des Servos
EE_Parameter.
ServoNickComp = 40; // Wert : 0-250 // Einfluss Gyro/Servo
EE_Parameter.
ServoCompInvert = 1; // Wert : 0-250 // Richtung Einfluss Gyro/Servo
EE_Parameter.
ServoNickMin = 0; // Wert : 0-250 // Anschlag
EE_Parameter.
ServoNickMax = 250; // Wert : 0-250 // Anschlag
EE_Parameter.
ServoNickRefresh = 6;
EE_Parameter.
ServoRollControl = 100; // Wert : 0-250 // Stellung des Servos
EE_Parameter.
ServoRollComp = 40; // Wert : 0-250 // Einfluss Gyro/Servo
EE_Parameter.
ServoRollMin = 0; // Wert : 0-250 // Anschlag
EE_Parameter.
ServoRollMax = 250; // Wert : 0-250 // Anschlag
EE_Parameter.
LoopGasLimit = 50;
EE_Parameter.
LoopThreshold = 90; // Wert: 0-250 Schwelle für Stickausschlag
EE_Parameter.
LoopHysterese = 50;
EE_Parameter.
BitConfig = 0; // Bitcodiert: 0x01=oben, 0x02=unten, 0x04=links, 0x08=rechts / wird getrennt behandelt
EE_Parameter.
AchsKopplung1 = 90;
EE_Parameter.
AchsKopplung2 = 80;
EE_Parameter.
CouplingYawCorrection = 1;
EE_Parameter.
WinkelUmschlagNick = 85;
EE_Parameter.
WinkelUmschlagRoll = 85;
EE_Parameter.
GyroAccAbgleich = 16; // 1/k
EE_Parameter.
Driftkomp = 32;
EE_Parameter.
DynamicStability = 100;
EE_Parameter.
J16Bitmask = 95;
EE_Parameter.
J17Bitmask = 243;
EE_Parameter.
WARN_J16_Bitmask = 0xAA;
EE_Parameter.
WARN_J17_Bitmask = 0xAA;
EE_Parameter.
J16Timing = 15;
EE_Parameter.
J17Timing = 15;
EE_Parameter.
NaviGpsModeControl = 252;
EE_Parameter.
NaviGpsGain = 100;
EE_Parameter.
NaviGpsP = 90;
EE_Parameter.
NaviGpsI = 90;
EE_Parameter.
NaviGpsD = 90;
EE_Parameter.
NaviGpsPLimit = 75;
EE_Parameter.
NaviGpsILimit = 75;
EE_Parameter.
NaviGpsDLimit = 75;
EE_Parameter.
NaviGpsACC = 0;
EE_Parameter.
NaviGpsMinSat = 6;
EE_Parameter.
NaviStickThreshold = 8;
EE_Parameter.
NaviWindCorrection = 90;
EE_Parameter.
NaviSpeedCompensation = 30;
EE_Parameter.
NaviOperatingRadius = 100;
EE_Parameter.
NaviAngleLimitation = 100;
EE_Parameter.
NaviPH_LoginTime = 4;
memcpy(EE_Parameter.
Name, "Sport\0", 12);
}
//-----------------------------------------------------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------------------------
// Parametersatz aus dem EEPROM lesen
// Nummer [1..5] möglich
//-----------------------------------------------------------------------------------------------------
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
); // #define EEPROM_ADR_PARAM_BEGIN 100
LED_Init
(); // initialisiert die Schalt-Ausgänge PORTC2 und PORTC3 an SV2 (control of J16 & J17)
}
//-----------------------------------------------------------------------------------------------------
//-----------------------------------------------------------------------------------------------------
// Parametersatz vom ROM ins EEPROM schreiben
// Nummer [1..5] ist die mögliche Nummer des Paramtersatzes
// *buffer ist die Adresse, woher die Bytes kommen, die kopiert werden sollen
// length ist die Anzahl der zu kopierenden Bytes
//------------------------------------------------------------------------------------------------------------------------------------
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
); // #define EEPROM_ADR_PARAM_BEGIN 100
// eeprom_write_block(buffer, &EEPromArray[100 + length * (number - 1)], length); // aufgelöst
eeprom_write_byte
(&EEPromArray
[EEPROM_ADR_PARAM_LENGTH
], length
); // Länge der Datensätze merken // #define EEPROM_ADR_PARAM_LENGTH 98
// eeprom_write_byte(&EEPromArray[98], length); // aufgelöst // lenght = 101
eeprom_write_block
(buffer
, &EEPromArray
[EEPROM_ADR_CHANNELS
], 8); // 8 Kanäle merken // #define EEPROM_ADR_CHANNELS 80
// eeprom_write_block(buffer, &EEPromArray[80], 8); // aufgelöst
SetActiveParamSetNumber
(number
);
LED_Init
(); // initialisiert die Schalt-Ausgänge PORTC2 und PORTC3 an SV2 (control of J16 & J17)
}
//------------------------------------------------------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------------------------------------------------------
unsigned char GetActiveParamSetNumber
(void) // hier wird herausgelesen, mit welchem Parametersatz gefolgen werden soll
{ // Beginner=3,Normal=2,Sport=1
unsigned char set
;
set
= eeprom_read_byte
(&EEPromArray
[EEPROM_ADR_ACTIVE_SET
]); // #define EEPROM_ADR_ACTIVE_SET 2
if((set
> 5) || (set
< 1))
{
set
= 3; // default = Beginner
SetActiveParamSetNumber
(set
); // diesen Parametersatz als aktuell merken
}
return(set
);
}
//-------------------------------------------------------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------------------------------------------------------
void SetActiveParamSetNumber
(unsigned char number
)
{
if(number
> 5) number
= 5;
if(number
< 1) return; // #define EEPROM_ADR_ACTIVE_SET 2
eeprom_write_byte
(&EEPromArray
[EEPROM_ADR_ACTIVE_SET
], number
); // diesen Parametersatz im EEPROM als aktuell merken
}
//-------------------------------------------------------------------------------------------------------------------------------------
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++