61,6 → 61,7 |
#include "timer1.h" |
#include "eeprom.h" |
#include "led.h" |
#include "crc16.h" |
|
|
|
96,7 → 97,7 |
EEPROM_Result_t EEPROM_Transfer(u8 Direction, u16 Address, u8 *pData, u16 DataLen) |
{ |
u16 i; |
u8 retry = 0; |
u8 retry = 0; |
EEPROM_Result_t retval = EEPROM_ERROR_UNKNOWN; |
|
if(((u32)Address + (u32)DataLen) >= (EEPROM_SIZE - 1)) |
194,7 → 195,7 |
|
while(DataLen > 0) |
{ |
if(DataLen > I2C_BUFFER_LEN) RxLen = I2C_BUFFER_LEN; |
if(DataLen > I2C_BUFFER_LEN - 2) RxLen = I2C_BUFFER_LEN - 2; |
else RxLen = DataLen; |
|
retval = EEPROM_Transfer(EEPROM_READ, Address+AdrOffset, &(pData[AdrOffset]), RxLen); |
221,3 → 222,72 |
else UART1_PutString("failed !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); |
return(retval); |
} |
|
|
void WriteLicenseToEEPROM(u8 kompatibel) |
{ |
// u8 msg[150]; |
u16 crc,crc2; |
EEPROM_Result_t retval = EEPROM_ERROR_UNKNOWN; |
crc = kompatibel; |
crc += CRC16(LicensePtr,LICENSE_SIZE_TEXT); |
EEPROM_ReadBlock(EEPROM_ADR_LICENSE_DATA_CRC,(u8 *)&crc2,2); |
if(crc != crc2) |
{ |
// UART1_PutString("\r\n Copy License to EEPROM..."); |
retval = EEPROM_WriteBlock(EEPROM_ADR_LICENSE_DATA,LicensePtr,LICENSE_SIZE_TEXT); |
if(retval == EEPROM_SUCCESS) retval = EEPROM_WriteBlock(EEPROM_ADR_LICENSE_DATA_CRC,(u8 *)&crc,2); |
/* |
if(retval == EEPROM_SUCCESS) UART1_PutString("ok"); |
else UART1_PutString("failed !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); |
sprintf(msg, " (0x%04x)",crc); |
UART1_PutString(msg); |
*/ |
} |
// else UART1_PutString("\r\n Copy of License in EEPROM "); |
} |
|
void ClearLicenseText(void) |
{ |
u32 i; |
for(i=0; i < LICENSE_SIZE_TEXT;i++) LicensePtr[i] = 0; //Achtung: das leert die ganze Struktur, nicht nur den Namen |
} |
|
void DeleteLicenseInEEPROM(void) |
{ |
ClearLicenseText(); |
WriteLicenseToEEPROM(0); |
} |
|
u8 ReadLicenseFromEEPROM(void) |
{ |
u8 retval = 0, tmp; |
// u8 msg[150]; |
u16 crc, crc2; |
|
// UART1_PutString("\r\n Read License from EEPROM..."); |
tmp = EEPROM_ReadBlock(EEPROM_ADR_LICENSE_DATA,LicensePtr,LICENSE_SIZE_TEXT); |
if(EEPROM_SUCCESS == tmp) retval = 1; |
|
crc = EEPROM_LICENSE_DATA_KOMPATIBEL; |
crc += CRC16(LicensePtr,LICENSE_SIZE_TEXT); |
EEPROM_ReadBlock(EEPROM_ADR_LICENSE_DATA_CRC,(u8 *)&crc2,2); |
|
if(crc != crc2) retval++; |
if(retval && LicensePtr[0] != 0 && LicensePtr[0] != 0xff) |
{ |
// sprintf(msg, "ok (0x%04x)",crc); |
// UART1_PutString(msg); |
return(1); |
} |
else |
{ |
UART1_PutString("not found !"); |
ClearLicenseText(); |
return(0); |
} |
} |
|
|
|
|