Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: kurze Eingaben am Digitalport I²C erfassen Kategorie: I²C-Bus (von MarkusK - 2.07.2009 20:38)
Als Antwort auf kurze Eingaben am Digitalport I²C erfassen von reneforster - 2.07.2009 16:37
Ich nutze:
C-Control II Station, OSOPT V3.1
Hier ein Beispiel:
Auf jeden Fall mit Interrupt arbeiten.

...
pcf.init();   //I2C    8-Bit Porterweiterung (PCF8574)
...

thread Taster
{

wait ports.get(11) == 0;   //Interrupt bei Zustandsänderung eines Ports von PCF8574
//PCF8574  (P7 = INT) verbunden mit [49] von CC2-Station und einem 10K Pullup bei [49]
//Ein Port steht bei 5V und wird auf GND gezogen

/*Bausteine immer komplett abfragen und nciht Portweise.
Also beim PCF8574 den kompletten Byteport*/


pcf.get(Addr, Port_data)   //Mit der Funktion get() wird der Portzustand des Ports port
                           //des angegebenen Bausteins abgefragt (Port_data = Byte)

Hier muÃ? dann die "Port_data" Byte Auswertung kommen welcher Eingang es dann ist !
(Einer ist ja der Interrupt Ausgang. Es bleiben also 7 übrig)

plm.beep(plm.TONE_C2); //Quittierungston
sleep 100;
plm.beep(plm.TONE_OFF);

}

...
...


Bei mir ist die PCF-Ports-HS I²C-Porterweiterung für Hutschienengehäuse
von CC-Tools im Einsatz.

Wenn der der MAX7311 benutzt wird, dann muÃ? anstatt ein Byte (8Bit) dann ein Integer (16Bit)
ausgewertet werden.

MarkusK


> Hallo Leute,
>
> ich brauche noch zusätzliche digitale Eingänge an der Station. Deshalb habe ich die Porterweiterung
> auf I²C Basis ins Auge gefasst. Jetzt habe ich jedoch im Vorfeld Bedenken, das ich kurze Eingangssignale
> gar nicht erfassen kann. Kurzfristig heist ein Tastendruck auf einen Lichtschalter / Rolladen. Aus dem Bauch
> würde ich mal sagen, das dauert nicht länger wie 0,3 bis 0,5 Sekunden.
>
> So, jetzt könnte ich einerseits im extrem kurzen Abstand (so ca. 150ms) alle Eingänge (16 Port) abfragen.
> Halte ich jedoch aufgrund des unnötigen Datenverkehrs auf dem I²C für ungeeignet. (Vielleicht wird der
> Lichttaster nur 2mal am Tag gedrückt)
>
> Die nächste Möglichkeit wäre die Verwendung des Interrup, den lege ich auf einen freien Port der Station.
> Hier sind schnelle Abfragen der Portzustände kein Problem. Dennoch habe ich Bedenken, bei einem
> Interrup Signal alle 16 Ports zeitnah abzufragen, bei einem Interrup Signal weis ich ja nicht, welcher der
> 16 Ports eine Pegeländerung hat.
>
> Deshalb die Frage in die Runde:
> Hat jemand schon so etwas umgesetzt und kann von seinen Erfahrungen schildern. Oder gibt es einen
> anderen Weg solche kurze Ereignisse zu erfassen?
>
>
> Rene


    Antwort schreiben


Antworten:

Re: kurze Eingaben am Digitalport I²C erfassen (von reneforster - 2.07.2009 21:19)