Hallo Zusammen, ich da noch ziemlicher Neuling was das Bascom programmieren angeht. Ich habe da etwas mit einem I2C eeprom experimentiert und wenn ich gezielt eine Adresse beschreibe oder lese, klappt das auch. Wenn ich aber nun aus einer Schleife lesen oder schreiben will, bekomme ich viele falsche Werte zurück. Wie kommt das zu stande? Gruß Otto
Ich denke an Deiner Software liegt es nicht, ich vermute eher ein Compiler-Fehler oder ein Bug im Controller!
Ich habe hier mal den Code: PS Nutze Atmega 8A, 24C128, Pollin Evalutionsboard, MySmartUSB light $regfile = "m8adef.dat" $crystal = 8000000 $baud = 9600 'SDA und SCL definieren Config Sda = Portc.4 'I2C-Pins definieren Config Scl = Portc.5 I2cinit Dim X As Byte Dim A As Byte Dim B As Byte Dim Lesen As Byte Cls Do '---- schreibe in EEprom ---- For A = 1 To 10 Incr X '1 bis Überlauf zählen I2cstart 'Start I2C I2cwbyte &HA0 'Sende Slave Adresse I2cwbyte A 'Sende Speicheradresse I2cwbyte X 'Sende Wert I2cstop 'Stop I2C Waitms 10 'warte 10ms Print "ins EEprom = " ; X ; " " ' Ausgabe der geschriebenen Werte am LCD Waitms 500 Next A '--- lesen vom EEprom ---- For B = 1 To 10 I2cstart 'Start I2C I2cwbyte &HA0 'sende Slave Adresse I2cwbyte B 'sende Speicheradresse I2cstart 'Start I2C I2cwbyte &HA1 'sende Slave Adresse +1 für Lesen I2crbyte Lesen , Nack 'lese Adresse vom EEprom I2cstop 'Stop I2C Print "Lese EEprom= " ; Lesen ; " " 'Ausgabe der EEprom Werte Waitms 500 Next B Loop End
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.