Advertisement
xerpi

EEPROMduino v1

Nov 26th, 2012
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.61 KB | None | 0 0
  1. /* ------------------------------ EEPROMduino.cpp ------------------------------ */
  2. #include "EEPROMduino.h"
  3.  
  4. EEPROMduino::EEPROMduino(uint8_t _a0, uint8_t _a1, uint8_t _a2)
  5. {
  6.     a0 = _a0;
  7.     a1 = _a1;
  8.     a2 = _a2;
  9.     EEPROM_address = buildAddress(_a0, _a1, _a2);
  10.     Wire.begin(EEPROM_address);
  11.  
  12. }
  13.  
  14.  
  15. void EEPROMduino::write(unsigned int address, byte data)
  16. {
  17.     Wire.beginTransmission(EEPROM_address);
  18.     Wire.write((byte)address);
  19.     Wire.write(data);
  20.     Wire.endTransmission();
  21. }
  22.  
  23. byte EEPROMduino::read(unsigned int address)
  24. {
  25.     byte data = 0xFF;
  26.     Wire.beginTransmission(EEPROM_address);
  27.     Wire.write((byte)address);
  28.     Wire.endTransmission();
  29.  
  30.     Wire.requestFrom(EEPROM_address, (byte)0x1);
  31.     if(Wire.available())
  32.     {
  33.         data = Wire.read();
  34.     }
  35.     return data;
  36. }
  37.  
  38. /* ------------------------------ EEPROMduino.h ------------------------------ */
  39.  
  40. #ifndef _EEPROMduino_H_
  41. #define _EEPROMduino_H_
  42.  
  43. #include <Wire.h>
  44. #include <Arduino.h>
  45.  
  46. typedef unsigned char uint8_t ;
  47. typedef uint8_t byte;
  48.  
  49. #define buildAddress(a0, a1, a2) (0b1010000 | (a2<<2) | (a1<<1) | (a0))
  50.  
  51. class EEPROMduino
  52. {
  53. public:
  54.     EEPROMduino(uint8_t _a0, uint8_t _a1, uint8_t _a2);
  55.     void write(unsigned int address, byte data);
  56.     byte read(unsigned int address);
  57. private:
  58.     uint8_t a0, a1, a2;
  59.     uint8_t EEPROM_address;
  60. };
  61.  
  62. #endif
  63.  
  64.  
  65. /* ------------------------------ SAMPLE CODE ------------------------------ */
  66.  
  67. #include <Wire.h>
  68.  
  69. #include "EEPROMduino.h"
  70.  
  71. EEPROMduino ee(1, 1, 1);
  72.  
  73. void setup()
  74. {
  75.     Serial.begin(9600);
  76.     Serial.println("Inited.");
  77.     ee.write(2, 0x89);
  78.     delay(100);
  79.     Serial.print(ee.read(2), HEX);
  80. }
  81.  
  82. void loop()
  83. {
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement