Ich weiß nich obs an mir liegt jedenfalls hat diese lösung mit sehr viel hin und herprobieren immernoch nicht funktioniert. Habs nu mit bisschen rumsuchen und probieren anders gelöst. Deshalb meine Lösung nochmal damit sich nich noch mehr leute damit rumärgern müssen wenns nich geht
Code:
'Hardware: AT Mega 32
$regfile = "m32def.dat"
$crystal = 7372800

'I2C konfigurieren
Config Sda = Porta.7
Config Scl = Porta.6

Dim Wert As Byte
Dim Adresse As Word
Dim Temp As Byte

'Funktionen deklarieren
Declare Sub Read_byte(byval Ee_adresse As Word, Value As Byte)
Declare Sub Write_byte(byval Ee_adresse As Word , Byval Ee_daten As Byte)

'Hauptprogramm===================================
Print "EEPROM schreiben...";
Do

For Adresse = 1 To 5                                        ' die ersten 5 Byte schreiben
   Wert = Adresse + 100                                     'Beginnend mit Zahlenwert 105 um Verwechslungen zu vermeiden
   Call Write_byte(adresse , Wert)                          'Daten schreiben
Next

Wait 1
Print "*2";
Print "EEPROM lesen: ";
Print "*3";

For Adresse = 1 To 5                                        'die geschriebenen 5 Byte auslesen
   Call Read_byte(adresse , Wert)                         'auslesen
   Print Str(wert);                                         'Ausgabe an UART
Next

Loop


'Funktionen=============================

'Routine zum schreiben von Daten in das EEPROM
Sub Write_byte(byval Ee_adresse As Word , Byval Ee_daten As Byte)
    Temp = High(ee_adresse)                                 'MSB von ee_adresse speichern
    I2cstart                                                'generate start
    I2cwbyte &B10100000                 'write addres of24C65
    I2cwbyte Temp                       'write high adress
    I2cwbyte Ee_adresse                 'write low adress
    I2cwbyte Ee_daten                   'write daten
    I2cstop                                                 'Stop senden zum schreiben
End Sub

'Routine zum lesen von Daten aus dem EEPROM
Function Read_byte(byval Ee_adresse As Word , Value As Byte)
    Temp = High(ee_adresse)             'MSB von ee_adresse speichern
    I2cstart                            'generate start
    I2cwbyte &B10100000                 'write addres of 24C65
    I2cwbyte Temp                       'write high adress
    I2cwbyte Ee_adresse                 'write low adress
    I2cstart                            'generate repeated start
    I2cwbyte &B10100001                                     'write read commando
    I2crbyte Value , Nack
    I2cstop
End Function