Mega8 und Software I2C

Gast #91379
Lesenswert?
• ▲
▼
Hallo,

versuche mir momentan Routinen für den I2C - Bus selber zu schreiben.
Zum ausprobieren habe ich 2 PCF8574 angeschlossen. An einem sind 8
Led's und am anderen 8 Taster. Das Arbeiten mit Ausgängen, also den
LED's, funktioniert schon wurderbar. Nur bei dem Einlesen der Eingänge
komme ich nicht weiter. Zum Test sollen halt je nach dem welcher Taster
gedrückt wurde die entsprechende LED leuchten. Habe mir schon Routinen
von anderen angeschaut und gegoogelt, aber ich finde den Fehler einfach
nicht.
Ich denke der Fehler liegt in dieser Routine (der gesamte Quellcode ist
im Anhang):

bytein:    clr   byte
    cbi  i2cport,SDA
    cbi   I2CDDR, SDA
    ldi   temp,8
bytein0:  rcall   pause
    sbi   i2cport, SCL
    rcall   pause
    cbi   i2cport, SCL
    rcall   pause
    sbic   I2CPIN,SDA
    sbr   byte, 1
    rcall   pause
    lsl   byte
    dec   temp
    brne   bytein0
    cbi   i2cport,SCL
    sbi   I2CDDR,SDA
    mov   i2cdata,byte
    ret


Kann mir da vielleicht jemand nen Tip geben?
Angehängte Dateien:

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 22 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.