Bascom Atmega 8A i2c EEprom

Gast #3052062
Lesenswert?

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
Gast #3052119
Lesenswert?

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren