Hallo Frank !
Hier mal ein kürzerer Treiber für I2C. ( Ist aber nicht von mir)
Code:
;Ansteuerung eines PCF8574 über SDA und SCL
;Verwendung des vorhandenen I2C-Bus
.org $101
;EEPROM vom Bus abmelden
jsr $08BB ;I2C_ReadLast
;Schreibzugriff auf PCF8574
ldx $0A1 ;Adresse PCF8574 lesen
jsr $083C ;I2C_Start
ldx $0A2 ;Daten lesen
jsr $0846 ;I2C_Write
jsr $08E5 ;I2C_Stop
;Lesezugriff auf PCF8574
ldx $0A1 ;Adresse lesen
incx ;Lesebit setzen
jsr $083C ;I2C_Start
jsr $086F ;I2C_Read
sta $0A2 ;Daten speichern
jsr $08BB ;I2C_ReadLast
;EEPROM wieder anmelden
ldx #$0A0 ;Adresse 24C65, write
jsr $083C ;I2C_Start
ldx $066 ;AdrCounter Hi
jsr $0846 ;I2C_Write
ldx $067 ;AdrCounter Lo
jsr $0846 ;I2C_Write
ldx #$0A1 ;Adresse 24C65, read
jsr $083C ;I2C_Start
rts
.end
Lesezeichen