home *** CD-ROM | disk | FTP | other *** search
-
- PORT .EQU $02 ;PortC
- DIR .EQU $06 ;PortCdir
- SDA .EQU 0 ;Port 9
- SCL .EQU 1 ;Port 10
-
- .org $101
- jsr I2C_Start
- lda $0A1 ;Adresse lesen
- jsr I2C_Write
- lda $0A2 ;Daten lesen
- jsr I2C_Write
- jsr I2C_Stop
- jsr I2C_Start
- lda $0A1 ;Adresse lesen
- inca ;Lesebit setzen
- jsr I2C_Write
- jsr I2C_Read
- jsr I2C_NoAck
- sta $0A2 ;Daten speichern
- rts
-
-
- I2C_Start BSET SDA,DIR ; SDA hi ausgeben
- BSET SDA,PORT ; Vorbereiten der Startbed.
- BSET SCL,PORT ; SCL hi falls lo
- BCLR SDA,PORT ; SDA lo -> STARTBEDINGUNG
- BCLR SCL,PORT ;
- RTS
-
-
- I2C_Write BSET SDA,DIR ; SDA out
- LDX #8 ; init loop
- Nextbit ROLA
- BCC Lobit ;
- BSET SDA,PORT ; hi bit
- BRA Clock
- Lobit BCLR SDA,PORT ; lo bit
- Clock BSET SCL,PORT ; scl hi
- BCLR SCL,PORT ; scl lo
- DEX
- BNE Nextbit ; loop
- BCLR SDA,DIR ; sda als Eingang
- BSET SCL,PORT ; scl hi
- BCLR SCL,PORT
- RTS
-
-
- I2C_Read BCLR SDA,DIR ; sda als Eingang
- CLRA
- LDX PORT
- RORX
- ROLA
- BSET SCL,PORT ; scl hi
- BCLR SCL,PORT
- LDX PORT
- RORX
- ROLA
- BSET SCL,PORT ; scl hi
- BCLR SCL,PORT
- LDX PORT
- RORX
- ROLA
- BSET SCL,PORT ; scl hi
- BCLR SCL,PORT
- LDX PORT
- RORX
- ROLA
- BSET SCL,PORT ; scl hi
- BCLR SCL,PORT
- LDX PORT
- RORX
- ROLA
- BSET SCL,PORT ; scl hi
- BCLR SCL,PORT
- LDX PORT
- RORX
- ROLA
- BSET SCL,PORT ; scl hi
- BCLR SCL,PORT
- LDX PORT
- RORX
- ROLA
- BSET SCL,PORT ; scl hi
- BCLR SCL,PORT
- LDX PORT
- RORX
- ROLA
- BSET SCL,PORT ; scl hi
- BCLR SCL,PORT
- RTS
-
- I2C_Ack
- BSET SDA,DIR
- BCLR SDA,PORT ; ACK
- BSET SCL,PORT ; scl hi
- BCLR SCL,PORT ; scl lo
- RTS
-
- I2C_NoAck
- BSET SDA,DIR
- BSET SDA,PORT ; NoACK
- BSET SCL,PORT ; scl hi
- BCLR SCL,PORT ; scl lo
- RTS
-
-
- I2C_Stop BSET SDA,DIR ; SDA out
- BCLR SDA,PORT ; low
- BSET SCL,PORT ; scl high
- BSET SDA,PORT ; STOPBEDINGUNG
- RTS
-
- .end
-