Interrupt von I2C einbinden

Hallo IPS Profis,

ich bin gerade dabei den I2C einzubinden. Läuft alles soweit, nur möchte ich gern den Interrupt des I2C Bus einbinden, weiß aber nicht wie.:confused:

Kann mir da jemand ein Tipp geben? Ich bekomme den Interrupt als Funktion in ein PHP Skript. Zyklisch abfragen der Funktion über ein Skript geht. Ich hätte aber gern eine Variable direkt aktualisiert wenn der Interrupt ausgelöst wird.

Grüße
Andrge

Das geht wohl nur mit einem eigenen Modul oder externem Programm und SOAP. Welches Interface benutzt Du?

Tommi

Hallo Tommi,

schön was von dir zu hören. Habe nun meinen i2C mit verschiedenen Bausteinen am laufen. Ich habe das Horter&Kolb Modem im Einsatz. Ich denke auch das ein Modul der richtige Weg wäre. Nur für ein Modul hab ich bisher nicht den Zugang gefunden. Hast du da mehr Erfahrung? Oder vielleicht kann uns Paresy hier unterstützen?

Grüße
Andrge

Hallo Andrge,

ich habe bisher bewußt kein Modul geschrieben, weil der Aufwand gegenüber der existierenden PHP-Bibliothek (eben ohne INT) relativ hoch ist und es weiterhin sehr Hardwarespezifisch ausgelegt werden muss.

Module habe ich bekanntlicherweise schon geschrieben, das ist jetzt nicht der Showstopper. Das besondere an diesem Thema ist aber, das man mit Interfaces, welche man abfragen muss, keine vernünftigen Antwortzeiten hin kriegt ohne die CPU-Usage hochzutreiben. Besser wäre es, wenn das Pollen ein Prozessor übernimmt und dann nur das Ereignis über den Comport schickt. Leider hat sich ELV beim USB-I2C Interface auch die INT-Auswertung gespart, so das dieses Modell dafür nicht nutzbar ist. Das H&K-I2C-Modem hat zwar die INT-Leitung, sendet auch nicht selber, sondern man muss den Status der Pins mit einem Kommando abfragen.

Wenn die Antwortzeit jedoch keine Rolle spielt und es reicht, das Interface z.B. 1-2mal pro sek abzufragen, kann man auch gleich wieder das normale serielle Modul von IPS oder meine Version mit port.dll nehmen und die Devices in PHP lassen, wie sie jetzt schon sind.

Es gibt jetzt mM. zwei Wege:

  1. Das Betriebssystem zu überzeugen, die Leitungsüberwachung selber zu machen und nur ein Event zu erzeugen (das gibt es evtl. auch schon bei kostenpflichtigen ActiveX-Controls) oder
    2.eine kleine Schachtel wie das ELV I2C Teil mit einem eigenen CPU-Interface und selbstständiger INT-Meldung. Vielleicht hat Helmut da noch was in seinem Fundus.

Vielleicht hat noch jemand eine bessere Idee

Tommi