*murmel* Ich versteh' deine Definition nicht so ganz:
1 ... eesingle.....eeword(1)....eebyte(1)............ overlay adresse
2.... eesingle.....eeword(1)....eebyte(2)
3.... eesingle.....eeword(2)....eebyte(3)
4.....eesingle.....eeword(2)....eebyte(4)
5........................................eebyte(5)
6........................................eebyte(6)
7.....eebanz
8.....eeaddr1
9.....eeaddr2
Beim write-ee zerschmetterst du ja zwei bytes vom single
Eebyte(1) = High(ee_adresse)
Eebyte(2) = Low(ee_adresse)
Vorschlag, wenn ich richtig interpretiere, was du wohl meinst :
Code:
Dim Eehead(2) As Byte
Dim Eedata(4) As Byte
Dim Eesingle As Single At Eedata Overlay 
Dim Eeword(2) As Word At Eedata Overlay 

Write_ee: 
Eebanz = Eebanz + 2 
    Eehead(1) = High(ee_adresse) 
    Eehead(2) = Low(ee_adresse) 
    I2csend 24c64w , Eehead(1) , Eebanz 
  return

Read_ee: 
    Eehead(1) = High(ee_adresse) 
    Eehead(2) = Low(ee_adresse) 

    I2csend 24c64w , Eehead(1) , 2 
    Waitms 5 
    I2creceive 24c64r , Eedata(1) , 0 , Eebanz 
    Waitms 25 
 return
Versuch' mal !