我有这样的代码,它是从EEPROM为4位数编写的。For Ex: 2356
(B)编码;
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地址0000和0001。对于2356,2356%100是56,2356/100是23。所以,在address 0000是56,在address 0001是23。在阅读时,EEPROM_Read(0000)将返回34,EEPROM_Read(0001)*100将返回2300。2300 + 56是2356。
但是如果我需要写5数字,比如65238,我应该怎么做。
发布于 2016-03-26 08:00:59
这将上升到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));
}https://stackoverflow.com/questions/36232929
复制相似问题