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 | ||
| ||
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) |