EEPROM读写5位
EEPROM read and write for 5 bits
我有这段代码可以从 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个地址0000
和0001
。对于 2356
,2356%100
是 56
,2356/100
是 23
。因此,在地址 0000
处它将是 56,在地址 0001
处它将是 23
。
阅读时 EEPROM_Read(0000)
将 return 34
而 EEPROM_Read(0001)*100
将 return 2300
。 2300 + 56
是 2356
。
但是如果我需要像 65238
这样写 5
数字我该怎么办。
这将上升到 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));
}
我有这段代码可以从 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个地址0000
和0001
。对于 2356
,2356%100
是 56
,2356/100
是 23
。因此,在地址 0000
处它将是 56,在地址 0001
处它将是 23
。
阅读时 EEPROM_Read(0000)
将 return 34
而 EEPROM_Read(0001)*100
将 return 2300
。 2300 + 56
是 2356
。
但是如果我需要像 65238
这样写 5
数字我该怎么办。
这将上升到 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));
}