Vieleicht kann da dir geholfen werden:

https://www.roboternetz.de/phpBB2/ze...661&highlight=


Ansonsten.....
Code:
$lib "i2c_TWI.lib" 
Config Scl = Portc.0                                        'PINs für I2C Bus 
Config Sda = Portc.1 
I2cinit 

Config Twi = 400000 

Dim Eehead(2) As Byte 
Dim Eebyte(4) As Byte 
Dim Eesingle As Single At Eebyte Overlay 
Dim Eeword(2) As Word At Eesingle Overlay 
Dim Eebanz As Byte 
Dim Ee_adresse01 As Word At Eehead Overlay 
Dim Eead As Word 

Const 24c64w = &B10100000 
Const 24c64r = &B10100001 


'Definition der Funktionen ++++++++++++++++++++++++++++++++++++++++++++++++++++ 
Declare Function Loadbyte(byval Ee_adresse As Word) As Byte 
Declare Function Loadword(byval Ee_adresse As Word) As Word 
Declare Function Loadsingle(byval Ee_adresse As Word) As Single 
Declare Sub Savebyte(byval Ee_daten As Byte , Byval Ee_adresse As Word) 
Declare Sub Saveword(byval Ee_daten As Word , Byval Ee_adresse As Word) 
Declare Sub Savesingle(byval Ee_daten As Single , Byval Ee_adresse As Word ) 

Goto 001 

Sub Savebyte(byval Ee_daten As Byte , Byval Ee_adresse As Word) 
Eebyte(1) = Ee_daten 
Ee_adresse01 = Ee_adresse 
Eebanz = 1 : Gosub Write_ee 
End Sub 

Sub Saveword(byval Ee_daten As Word , Byval Ee_adresse As Word) 
Eeword(1) = Ee_daten 
Ee_adresse01 = Ee_adresse 
Eebanz = 2 : Gosub Write_ee 
End Sub 

Sub Savesingle(byval Ee_daten As Single , Byval Ee_adresse As Word ) 
Eesingle = Ee_daten 
Ee_adresse01 = Ee_adresse 
Eebanz = 4 : Gosub Write_ee 
End Sub 


Function Loadbyte(byval Ee_adresse As Word) As Byte 
Ee_adresse01 = Ee_adresse 
Eebanz = 1 : Gosub Read_ee 
Loadbyte = Eebyte(1) 
End Function 

Function Loadword(byval Ee_adresse As Word) As Word 
Ee_adresse01 = Ee_adresse 
Eebanz = 2 : Gosub Read_ee 
Loadword = Eeword(1) 
End Function 

Function Loadsingle(byval Ee_adresse As Word) As Single 
Ee_adresse01 = Ee_adresse 
Eebanz = 4 : Gosub Read_ee 
Loadsingle = Eesingle 
End Function 






'Routine zum schreiben von Daten in das EEPROM ++++++++++++++++++++++++++++++++ 
Write_ee: 
    'Disable Interrupts 
    Eead = Eead + Eebanz 
    Eebanz = Eebanz + 2 
    I2csend 24c64w , Eehead(1) , Eebanz 
    'Waitms 10 
    'Enable Interrupts 
'If Err = 1 Then Call Error(55) 

Return 


'Routine zum lesen von Daten aus dem EEPROM ++++++++++++++++++++++++++++++++++++ 
Read_ee: 
    'Disable Interrupts 
    Eead = Eead + Eebanz 
    I2csend 24c64w , Eehead(1) , 2 
    'Waitms 10 
    I2creceive 24c64r , Eebyte(1) , 0 , Eebanz 
    'Waitms 1 
    'Enable Interrupts 
'If Err = 1 Then Call Error(55) 

Return 

001: 

Dim Ins As Single 
Dim Inw As Word 
Dim Inb As Byte 
Dim I As Word 

Do 
Input "Single: " , Ins 
For I = 20 To 100 Step 4 
Call Savesingle(ins , I) 
Next I 
Print "gespeicherter Wert: " ; Ins 
Ins = Loadsingle(20) 
Print "geladener Wert: " ; Ins 

Input "Word: " , Inw 
Call Saveword(inw , 10) 
Print "gespeicherter Wert: " ; Inw 
Inw = Loadword(10) 
Print "geladener Wert: " ; Inw 

Input "Byte: " , Inb 
Call Savebyte(inb , 30) 
Print "gespeicherter Wert: " ; Inb 
Inb = Loadbyte(30) 
Print "geladener Wert: " ; Inb 
Loop 
For I = 10 To 410 Step 4 
Call Savesingle(0 , I) 
Next I