Hello my fellow AVR-nauts. I'm looking into using the avr/eeprom.h include to manage my EEPROM reads/writes, but I'm confused about the addresses. eeprom_read_byte and eeprom_write_byte only accept 8-bit addresses, so you can only access the lower 256 bytes of EEPROM. This is fine for small projects, but an atmega64, for example, has 2K bytes of EEPROM. If I'm addressing outside of an 8-bit range, it looks like I have to use eeprom_read_word or eeprom_read_dword, but then I can't just read a single byte anymore. Maybe it's better (in the design/readability sense) to keep variables in the .eeprom section with the EEMEM attribute when you start using a large amount of non-volatile storage, but I'm still curious how you could access single bytes at large addresses with the built-in functions. In previous projects, I've coded the EEPROM handling myself, but I would like to try the nice included header for a change. Sorry if this has been answered before... I wasn't able to find it in the search.
- Allen Jordan