Subversion Repositories NaviCtrl

Rev

Rev 819 | Blame | Last modification | View Log | RSS feed

#ifndef __EEPROM_H
#define __EEPROM_H


#define EEPROM_ADR_BAUDRATE_INDEX                       44 // 44 - 45
#define EEPROM_ADR_BARO_KALIBRATION                     46 // 46 - 49
#define EEPROM_ADR_MAG_CALIBRATION_INTERN       50 // two calibrtion sets for extern and intern sensor
#define EEPROM_ADR_MAG_CALIBRATION_EXTERN   70
#define EEPROM_ADR_LICENSE_DATA_CRC                124// - 600
#define EEPROM_ADR_LICENSE_DATA                    128// - 600
#define EEPROM_ADR_OEM_Name_CRC            601// 2 bytes
#define EEPROM_ADR_OEM_Name                603// 603 - 619

#define EEPROM_LICENSE_DATA_KOMPATIBEL          1

// points into the license struct
#define OEM_IN_LICENSE   460

typedef enum
{
  EEPROM_SUCCESS = 0,
  EERPOM_ERROR_I2C_DEINIT,
  EEPROM_ERROR_I2C_IDLE_TIMEOUT,
  EEPROM_ERROR_I2C_TRANSFER_TIMEOUT,
  EEPROM_ERROR_OUT_OF_ADDRESS_RANGE,
  EEPROM_DATA_TRANSFER_INCOMPLETE,
  EEPROM_I2C_BUFFER_OVERRUN,
  EEPROM_NO_ACK,
  EEPROM_ERROR_UNKNOWN
} EEPROM_Result_t;

extern u8 EEPROM_Init(void);
extern EEPROM_Result_t EEPROM_WriteBlock(u16 Address, u8 *pData, u16 DataLen);
extern EEPROM_Result_t EEPROM_ReadBlock(u16 Address, u8 *pData, u16 DataLen);
extern void WriteLicenseToEEPROM(u8 kampatibel);
extern u8 ReadLicenseFromEEPROM(void);
extern void DeleteLicenseInEEPROM(void);
extern void ClearLicenseText(void);
extern u8 ReadOemNameFromEEPROM(void);
extern void WriteOemNameToEEPROM(void);
extern void WriteBaroCalibrationToEEprom(void);
extern void ReadBaroCalibrationfromEEprom(void);
void WriteBaudrateIndexToEEprom(void);
void ReadBaudrateIndexfromEEprom(void);

#endif // EEPROM_H