Immer wieder 0. Im Serial Monitor wird mir die Adresse angezeigt, der Rest ist immer 0 ...
#include "DHT.h"
#include "EEPROM.h"
#define DHTPIN 50
#define DHTTYPE DHT22
int addr = 0;
int hx;
int tx;
DHT dht(DHTPIN, DHTTYPE);
void setup()
{
Serial.begin(9600);
dht.begin();
}
void loop()
{
int h = dht.readHumidity();
int t = dht.readTemperature();
if (isnan(t) && isnan(h))
{
hx = h * 10;
EEPROM.write(addr, highByte(hx));
addr = addr + 1;
if (addr == 2048)
addr = 0;
EEPROM.write(addr, lowByte(hx));
addr = addr + 1;
if (addr == 2048)
addr = 0;
tx = t * 10;
EEPROM.write(addr, highByte(tx));
addr = addr + 1;
if (addr == 2048)
addr = 0;
EEPROM.write(addr, lowByte(tx));
addr = addr + 1;
if (addr == 2048)
addr = 0;
}
delay(1000);
}
Damit versuche ich zu schreiben. Byte für Byte.
Mit dem Folgendem, versuche ich in der richtigen Reihenfolge auszulesen.
#include "EEPROM.h"
int addr = 0;
byte val;
void setup()
{
Serial.begin(9600);
}
void loop()
{
Serial.print(addr);
Serial.print("\t");
Serial.print(val, DEC);
addr = addr + 1;
if (addr == 512)
addr = 0;
Serial.print(val, DEC);
Serial.print("\t");
addr = addr + 1;
if (addr == 512)
addr = 0;
Serial.print(val, DEC);
addr = addr + 1;
if (addr == 512)
addr = 0;
Serial.print(val, DEC);
Serial.println();
addr = addr + 1;
if (addr == 512)
addr = 0;
Serial.println();
delay(100);
}
Ich weiß aber auch nicht, ob ich falsch schreib oder falsch lese ... oder beides falsch ist ... :~