Programmbeispiel 2 MyEEPROM_I2C

Das Beispielprogramm zeigt die Ausgabe von Meldetexten am Seriellen Monitor, die in einem 2 kBit-EEPROM gespeichert sind. Wie im nachfolgenden Bild ersichtlich, sind die einzelnen Texte durch ein Begrenzungszeichen, in diesem Fall durch "Strich-Punkt" ';' voneinander getrennt. Die im Programmbeispiel eingesetzte Funktion "readBufferLimiter" liest Texte ab einer angegebenen EEPROM-Adresse bis zu einem definierbaren Begrenzungszeichen in ein Buffer-Array ein, dessen Inhalt dann über die Funktion "void printText(byte* buf)" am Seriellen Monitor ausgegeben wird.


Bild: Inhalt des EEPROMs dargestellt mit dem EEPROM-Monitor (siehe EEPROM-Monitor)


//Programmbeispiel 2 für EEPROM-Library
//Code fuer Arduino
//Author Retian
//Version 1.1


#include <MyEEPROM_I2C.h>


//Längster Meldetext einschließlich Trennzeichen 23 Byte (von maximal 32 Byte)

#define bufferSize 23 //Buffergroesse 23 Byte, darf max. 32 Byte sein
byte textBuffer[bufferSize];


//Anfangsadressen der Meldetexte im EEPROM
#define eepTextAdd1 0
#define eepTextAdd2 21
#define eepTextAdd3 42
#define eepTextAdd4 65
#define eepTextAdd5 81
#define eepTextAdd6 104
#define eepTextAdd7 121


MyEEPROM_I2C MyEEPROM1;


void setup() {
  Serial.begin(115200);

  MyEEPROM1.init(0x50);
  MyEEPROM1.setSize(EEPROM_2KBIT); //EEPROM-Speichergroesse = 2 kBit

  

  //Aendern der Variable "readBufferSize" von 32 Byte (Standardwert) auf "bufferSize"
  MyEEPROM1.readBufferSize = bufferSize;

 

  Serial.println("Ausgabe der Meldetexte:");
  Serial.println();
  //Wenn Trennzeichen ';' gefunden, dann Textausgabe am Seriellen Monitor
  if (MyEEPROM1.readBufferLimiter(eepTextAdd1, textBuffer, ';')) printText(textBuffer);
  if (MyEEPROM1.readBufferLimiter(eepTextAdd2, textBuffer, ';')) printText(textBuffer);
  if (MyEEPROM1.readBufferLimiter(eepTextAdd3, textBuffer, ';')) printText(textBuffer);
  if (MyEEPROM1.readBufferLimiter(eepTextAdd4, textBuffer, ';')) printText(textBuffer);
  if (MyEEPROM1.readBufferLimiter(eepTextAdd5, textBuffer, ';')) printText(textBuffer);
  if (MyEEPROM1.readBufferLimiter(eepTextAdd6, textBuffer, ';')) printText(textBuffer);
  if (MyEEPROM1.readBufferLimiter(eepTextAdd7, textBuffer, ';')) printText(textBuffer);
}


void printText(byte* buf)
{
  for (byte i = 0; i < bufferSize; i++) Serial.print((char)buf[i]);
  Serial.println();
}


void loop() {
}


Ausgabe am Seriellen Monitor:



Zur Library I2C-EEPROM