Rev 489 | Rev 530 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 489 | Rev 526 | ||
---|---|---|---|
Line 59... | Line 59... | ||
59 | #include "i2c.h" |
59 | #include "i2c.h" |
60 | #include "uart1.h" |
60 | #include "uart1.h" |
61 | #include "timer1.h" |
61 | #include "timer1.h" |
62 | #include "eeprom.h" |
62 | #include "eeprom.h" |
63 | #include "led.h" |
63 | #include "led.h" |
- | 64 | #include "crc16.h" |
|
Line 64... | Line 65... | ||
64 | 65 | ||
65 | 66 | ||
Line 192... | Line 193... | ||
192 | u16 AdrOffset = 0; |
193 | u16 AdrOffset = 0; |
193 | u16 RxLen; |
194 | u16 RxLen; |
Line 194... | Line 195... | ||
194 | 195 | ||
195 | while(DataLen > 0) |
196 | while(DataLen > 0) |
196 | { |
197 | { |
197 | if(DataLen > I2C_BUFFER_LEN) RxLen = I2C_BUFFER_LEN; |
198 | if(DataLen > I2C_BUFFER_LEN - 2) RxLen = I2C_BUFFER_LEN - 2; |
Line 198... | Line 199... | ||
198 | else RxLen = DataLen; |
199 | else RxLen = DataLen; |
199 | 200 | ||
200 | retval = EEPROM_Transfer(EEPROM_READ, Address+AdrOffset, &(pData[AdrOffset]), RxLen); |
201 | retval = EEPROM_Transfer(EEPROM_READ, Address+AdrOffset, &(pData[AdrOffset]), RxLen); |
Line 219... | Line 220... | ||
219 | } |
220 | } |
220 | if(retval) UART1_PutString("ok"); |
221 | if(retval) UART1_PutString("ok"); |
221 | else UART1_PutString("failed !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); |
222 | else UART1_PutString("failed !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); |
222 | return(retval); |
223 | return(retval); |
223 | } |
224 | } |
- | 225 | ||
- | 226 | ||
- | 227 | void WriteLicenseToEEPROM(u8 kompatibel) |
|
- | 228 | { |
|
- | 229 | // u8 msg[150]; |
|
- | 230 | u16 crc,crc2; |
|
- | 231 | EEPROM_Result_t retval = EEPROM_ERROR_UNKNOWN; |
|
- | 232 | crc = kompatibel; |
|
- | 233 | crc += CRC16(LicensePtr,LICENSE_SIZE_TEXT); |
|
- | 234 | EEPROM_ReadBlock(EEPROM_ADR_LICENSE_DATA_CRC,(u8 *)&crc2,2); |
|
- | 235 | if(crc != crc2) |
|
- | 236 | { |
|
- | 237 | // UART1_PutString("\r\n Copy License to EEPROM..."); |
|
- | 238 | retval = EEPROM_WriteBlock(EEPROM_ADR_LICENSE_DATA,LicensePtr,LICENSE_SIZE_TEXT); |
|
- | 239 | if(retval == EEPROM_SUCCESS) retval = EEPROM_WriteBlock(EEPROM_ADR_LICENSE_DATA_CRC,(u8 *)&crc,2); |
|
- | 240 | /* |
|
- | 241 | if(retval == EEPROM_SUCCESS) UART1_PutString("ok"); |
|
- | 242 | else UART1_PutString("failed !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); |
|
- | 243 | sprintf(msg, " (0x%04x)",crc); |
|
- | 244 | UART1_PutString(msg); |
|
- | 245 | */ |
|
- | 246 | } |
|
- | 247 | // else UART1_PutString("\r\n Copy of License in EEPROM "); |
|
- | 248 | } |
|
- | 249 | ||
- | 250 | void ClearLicenseText(void) |
|
- | 251 | { |
|
- | 252 | u32 i; |
|
- | 253 | for(i=0; i < LICENSE_SIZE_TEXT;i++) LicensePtr[i] = 0; //Achtung: das leert die ganze Struktur, nicht nur den Namen |
|
- | 254 | } |
|
- | 255 | ||
- | 256 | void DeleteLicenseInEEPROM(void) |
|
- | 257 | { |
|
- | 258 | ClearLicenseText(); |
|
- | 259 | WriteLicenseToEEPROM(0); |
|
- | 260 | } |
|
- | 261 | ||
- | 262 | u8 ReadLicenseFromEEPROM(void) |
|
- | 263 | { |
|
- | 264 | u8 retval = 0, tmp; |
|
- | 265 | // u8 msg[150]; |
|
- | 266 | u16 crc, crc2; |
|
- | 267 | ||
- | 268 | // UART1_PutString("\r\n Read License from EEPROM..."); |
|
- | 269 | tmp = EEPROM_ReadBlock(EEPROM_ADR_LICENSE_DATA,LicensePtr,LICENSE_SIZE_TEXT); |
|
- | 270 | if(EEPROM_SUCCESS == tmp) retval = 1; |
|
- | 271 | ||
- | 272 | crc = EEPROM_LICENSE_DATA_KOMPATIBEL; |
|
- | 273 | crc += CRC16(LicensePtr,LICENSE_SIZE_TEXT); |
|
- | 274 | EEPROM_ReadBlock(EEPROM_ADR_LICENSE_DATA_CRC,(u8 *)&crc2,2); |
|
- | 275 | ||
- | 276 | if(crc != crc2) retval++; |
|
- | 277 | if(retval && LicensePtr[0] != 0 && LicensePtr[0] != 0xff) |
|
- | 278 | { |
|
- | 279 | // sprintf(msg, "ok (0x%04x)",crc); |
|
- | 280 | // UART1_PutString(msg); |
|
- | 281 | return(1); |
|
- | 282 | } |
|
- | 283 | else |
|
- | 284 | { |
|
- | 285 | UART1_PutString("not found !"); |
|
- | 286 | ClearLicenseText(); |
|
- | 287 | return(0); |
|
- | 288 | } |
|
- | 289 | } |
|
- | 290 | ||
- | 291 | ||
- | 292 | ||
- | 293 |