EEPROM读写5位

时间:2016-03-26 07:49:50

标签: c avr eeprom

我有这个代码,可以从 EEPROM 写入和写入4位数字。 For Ex: 2356

代码;

void WritePassToEEPROM(uint16_t pass)
{
   EEPROMWrite(0000,(pass%100));
   EEPROMWrite(0001,(pass/100));
}

uint16_t ReadPassFromEEPROM()
{
   return (EEPROMRead(0001)*100  +  EEPROMRead(0000));
}

Write_Pass_To_EEPROM()函数写入2个地址00000001。对于23562356%100562356/10023。因此,地址0000将为56,地址000123。 阅读EEPROM_Read(0000)将返回34EEPROM_Read(0001)*100将返回23002300 + 562356

但是,如果我需要写5数字,如65238我应该怎么做。

1 个答案:

答案 0 :(得分:0)

这将达到0xffff(65535)。

void WritePassToEEPROM(uint16_t pass)
{
   EEPROMWrite(0000,(pass & 0x00ff));
   EEPROMWrite(0001,(pass & 0xff00) >> 8);
}

uint16_t ReadPassFromEEPROM()
{
   return ((uint16_t)(EEPROMRead(0001) << 8)  +  (uint16_t)EEPROMRead(0000));
}