Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Re: I2C und INT Kategorie: Hardware (von André H. - 1.03.2004 9:00)
 Als Antwort auf I2C und INT von Reinhard - 28.02.2004 23:45
Hallo Reinhard,

> wie nutzt man eigentlich den Interrupt beim I2C-Bus?
>
> Wenn ich das richtig verstanden haben, wird der INT-Ausgang
> eines PCF8574 mit dem INT-Eingang der C-Control verbunden.
>
> Und wie nutze ich das softwaretechnisch?
>
> Was ist, wenn ich mehrere PCF8574 habe?

Die Interruptausgänge von I²C-Bus-Bausteinen haben nichts mit
dem Interrupteingang der CC1 zu tun !
Sie signalisieren eine Änderung an einem/mehreren Bausteinen.
Bei der CC1 solltest Du die I²C-Interruptleitung  mit einem I/O-Port
verbinden, welchen Du im Programm überwachst.

Softwaretechnisch würde das dann so ablaufen:
define int port[x]
...
#loop
...
if not int then gosub I2CAbfrage ' Low-Pegel=Interrupt
...
...
...
goto loop

#I2CAbfrage
 Baustein abfragen
 if int then return ' High-Pegel=Interrupt "beendet"
 nächsten Baustein abfragen
 if int then return ' High-Pegel=Interrupt "beendet"
 usw.
 letzten Baustein abfragen
return


Das ist natürlich stark vereinfacht ausgedrückt. :-)
Wenn Du mehrere I²C-Bus-Bausteine hast, welche als Eingang fungieren,
schließt Du einfach alle INT-Ausgänge parallel.
Im Programm benützt Du einfach das Schema des Subs #I2CAbfrage, um
mehrere Bausteine abzufragen.

MfG André H.

 Antwort schreiben

Bisherige Antworten:

Re: I2C und INT (von Reinhard - 1.03.2004 10:35)