EEPROM schreiben & lesen

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 ... :~