EEPROM_mbv2.h 833 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. /* this is the eeprom abstraction for the microbit v2.
  2. * the eeprom will be mapped to a simple file in the file system, later.
  3. */
  4. #ifdef _MICROBIT_V2_
  5. const int STORESIZE = 256;
  6. byte program[STORESIZE];
  7. bool loaded = false;
  8. void load() {
  9. loaded = true;
  10. }
  11. byte readbyte(int addr) {
  12. if (!loaded) {
  13. load();
  14. }
  15. if ((addr >=0) && (addr < STORESIZE)) {
  16. return program[addr];
  17. }
  18. return 0xFF;
  19. }
  20. void writebyte(int addr, byte value) {
  21. if ((addr >=0) && (addr < STORESIZE)) {
  22. program[addr] = value;
  23. }
  24. }
  25. void store() {
  26. }
  27. #else
  28. #include <EEPROM.h>
  29. #include <avr/eeprom.h>
  30. const int STORESIZE = E2END;
  31. byte readbyte(int addr) {
  32. return EEPROM.read(addr);
  33. }
  34. void writebyte(int addr, byte value) {
  35. EEPROM.write(addr, value);
  36. }
  37. void store() {
  38. }
  39. #endif