Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Wire.h>
- void i2c_eeprom_write_byte( int deviceaddress, unsigned int eeaddress, byte data ) {
- int rdata = data;
- Wire.beginTransmission(deviceaddress);
- Wire.write((int)(eeaddress)); // odešle vyšší byte
- Wire.write((int)(eeaddress & 0xFF)); // odešle nižší byte
- Wire.write(rdata);
- Wire.endTransmission();
- }
- byte i2c_eeprom_read_byte( int deviceaddress, unsigned int eeaddress ) {
- byte rdata = 0xFF;
- Wire.beginTransmission(deviceaddress);
- Wire.write((int)(eeaddress)); // odešle vyšší byte
- Wire.write((int)(eeaddress & 0xFF)); // odešle nižší byte
- Wire.endTransmission();
- Wire.requestFrom(deviceaddress,1);
- if (Wire.available()) rdata = Wire.read();
- return rdata;
- }
- void setup()
- {
- //Zápis
- Wire.begin();
- Serial.begin(9600);
- int pocet = 5; //Pocet znaku
- pocet++;
- 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á
- i2c_eeprom_write_byte(0x50, 32000, pocet); //do adresy 3200 se zapíše počet čísel
- for(int i=0; i<= pocet; i++)
- {
- i2c_eeprom_write_byte(0x50, i, pole[i]); //Postupný zápis do paměti
- delay(5);
- }
- // Čtení
- int a;
- pocet = i2c_eeprom_read_byte(0x50, 32000); //přečte počet znaků z adresy 3200
- for(int i=1; i<=pocet; i++){ //Postupně přečte znaky z paměti.
- a = i2c_eeprom_read_byte(0x50, i);
- Serial.println(char(a)); //Vypíše znak odkodovaný z askii
- delay(5);
- }
- }
- void loop() {}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement