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







Zitieren

Lesezeichen