00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #include <avr/eeprom.h>
00016
00017 #include "global.h"
00018
00019 u08 paramLoad(u08* parameters, u08* memaddr, u16 sizebytes)
00020 {
00021 u16 i;
00022 u08 checksum_stored=0;
00023 u08 checksum=0;
00024
00025
00026 eeprom_read_block(parameters, memaddr, sizebytes);
00027
00028 eeprom_read_block(&checksum_stored, memaddr+sizebytes, sizeof(u08));
00029
00030
00031 for(i=0;i<sizebytes;i++)
00032 checksum += parameters[i];
00033 checksum = ~checksum;
00034
00035 if(checksum == checksum_stored)
00036 return TRUE;
00037 else
00038 return FALSE;
00039 }
00040
00041 void paramStore(u08* parameters, u08* memaddr, u16 sizebytes)
00042 {
00043 u16 i;
00044 u08 checksum=0;
00045
00046
00047 for(i=0;i<sizebytes;i++)
00048 checksum += parameters[i];
00049 checksum = ~checksum;
00050
00051
00052 eeprom_write_block(parameters, memaddr, sizebytes);
00053
00054 eeprom_write_block(&checksum, memaddr+sizebytes, sizeof(u08));
00055 }
00056