Ich kämpfe nun seit drei Tagen mit dem Lesen und Schreiben auf einen 24c64.
Bin nun soweit das ich ein Byte geziehlt schreiben und lesen kann, allerdings würde ich viel lieber ein Word geziehlt schreiben und lesen.
Mit den Prog kann ich auf Tastendruck ein Wert (Word) an den 24C64 senden,
allerdings beim lesen geht es nur mit Werten bis 255 (also Byte)
Was muss ich noch ändern?
Code:$regfile = "m8def.dat" $crystal = 8000000 Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portb.5 , Rs = Portb.4 Config Lcd = 16 * 2 Cursor Off Config Scl = Portc.5 'PIN für I2C Bus Config Sda = Portc.4 Config Pinc.3 = Input Config Pinc.1 = Input Config Portc.2 = Output Config Portc.0 = Output Portc.3 = 1 'Pullup ein Portc.1 = 1 'Pullup aus Dim X As Word Dim A As Byte Dim B As Byte Dim Lesen As Word Cls Main: Do X = X + 5 A = 1 B = 1 If Pinc.3 = 0 Then Portc.2 = 1 Gosub Eschreiben End If If Pinc.3 = 1 Then Portc.2 = 0 End If If Pinc.1 = 0 Then Portc.0 = 1 Gosub Elesen End If If Pinc.1 = 1 Then Portc.0 = 0 End If Loop Eschreiben: '---- schreibe in EEprom ---- I2cstart 'Start I2C I2cwbyte &HA0 'Sende Slave Adresse I2cwbyte A 'Sende Speicheradresse High I2cwbyte B 'Sende Speicheradresse LOw I2cwbyte X 'Sende Wert I2cstop 'Stop I2C Waitms 10 'warte 10ms Locate 1 , 1 Lcd "ins EE= " ; X ; " " ' Ausgabe der geschriebenen Werte am LCD Waitms 500 Return Elesen: '--- lesen vom EEprom ---- I2cstart 'Start I2C I2cwbyte &HA0 'sende Slave Adresse I2cwbyte A 'sende Speicheradresse High I2cwbyte B 'sende Speicheradresse Low I2cstart 'Start I2C I2cwbyte &HA1 'sende Slave Adresse +1 für Lesen I2crbyte Lesen , Nack 'lese Adresse vom EEprom I2cstop 'Stop I2C 'Stop I2C Locate 2 , 1 Lcd "Lese EE= " ; Lesen ; " " 'Ausgabe der EEprom Werte Waitms 500 Return End







Zitieren

Lesezeichen