Advertisement
nicx321

24C32 EEPROM

Jan 13th, 2017
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.70 KB | None | 0 0
  1. #include <Wire.h>
  2.   void i2c_eeprom_write_byte( int deviceaddress, unsigned int eeaddress, byte data ) {
  3.     int rdata = data;
  4.     Wire.beginTransmission(deviceaddress);
  5.     Wire.write((int)(eeaddress)); // odešle vyšší byte
  6.     Wire.write((int)(eeaddress & 0xFF)); // odešle nižší byte
  7.     Wire.write(rdata);
  8.     Wire.endTransmission();
  9.   }
  10.  
  11.   byte i2c_eeprom_read_byte( int deviceaddress, unsigned int eeaddress ) {
  12.     byte rdata = 0xFF;
  13.     Wire.beginTransmission(deviceaddress);
  14.     Wire.write((int)(eeaddress)); // odešle vyšší byte
  15.     Wire.write((int)(eeaddress & 0xFF)); // odešle nižší byte
  16.     Wire.endTransmission();
  17.     Wire.requestFrom(deviceaddress,1);
  18.     if (Wire.available()) rdata = Wire.read();
  19.     return rdata;
  20.   }
  21.  
  22.  void setup()
  23.   {    
  24.     //Zápis
  25.     Wire.begin();
  26.     Serial.begin(9600);
  27.     int pocet = 5;                                     //Pocet znaku
  28.     pocet++;
  29.     int pole[pocet+1] = {0, 104, 111, 110, 122, 97}; //askii hodnota k zapsání, nula musí být a do počtu znaků se nepočitá
  30.     i2c_eeprom_write_byte(0x50, 32000, pocet);      //do adresy 3200 se zapíše počet čísel
  31.     for(int i=0; i<= pocet; i++)                          
  32.     {
  33.     i2c_eeprom_write_byte(0x50, i, pole[i]);        //Postupný zápis do paměti
  34.     delay(5);
  35.     }
  36.     // Čtení
  37.     int a;    
  38.     pocet = i2c_eeprom_read_byte(0x50, 32000);      //přečte počet znaků z adresy 3200
  39.     for(int i=1; i<=pocet; i++){                     //Postupně přečte znaky z paměti.
  40.     a = i2c_eeprom_read_byte(0x50, i);
  41.     Serial.println(char(a));                        //Vypíše znak odkodovaný z askii
  42.     delay(5);
  43.     }
  44.   }
  45.  
  46.   void loop() {}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement