Hi

Zitat Zitat von André H.
Hallo Frank,
Warum willst Du den Zähler bei einem Überlauf zurücksetzen, wenn
dieser sowieso wieder bei 0 anfängt ??
Wußte nicht genau ob das so ist da du von "Aufwand" was geschrieben hattest. Na wenn es so ist, dann braust Du ja fast nix zu ändern.

Zitat Zitat von André H.
Müsste man schon, da der Interrupt vom PCF8574 kommt, und dieser
bei jeder Änderung der Eingänge ausgelöst wird.
Sorry, natürlich! Ich meinte du musst nur Überlauf auf Interrupt Eingang vom Controller führen


Zitat Zitat von André H.
Jedoch garantiere ich Dir, daß Du garantiert Impulse verlierst, wenn nur
die Überläufe erfasst werden.
Ein I²C-Bus Zugriff(Zählerabfrage) dauert hier
mit CC1 + ASM-Routine ca. 20ms
mit CC2 in C2 ca. 0,6 bis 0,7ms
C164CI mit 20MHz in ASM. ca. 0,2ms
Glaub ich nicht Andé. Gerade weil die C-Control so langsam ist hat man nur mit dem Überlauf die Chance genau zu zählen. Nach meiner Meinung verliert man Impule wenn man versucht ständig den Zähler bei jeder Änderung abzufragen. Ganz zu schweigen das es nicht gerade toll zu programmieren wäre, wenn der Controlle rnicht nur Räder bewegen muss und noch Sensoren abfragen usw. Mit einem Interrupt würde da alles wegfallen.
Natürlich hast Du recht das man immer nur den internen I2C-Bus nehmen sollte, das versteht sich.


Zitat Zitat von André H.
1. Es gibt keinen "I2C-Port", sondern nur einen I²C-Bus.
Kleiner Versprecher!

Zitat Zitat von André H.
2. Hab ich schonmal geschrieben, daß der I²C-Bus mit mind. 100kHz funzt ?
Das weiss ich! Ich hab selbst schon mal den I2C Bus richtig belastet indem ich bei meinem Bot zwischen jedem Schrittmotorschritt alle möglichen Sensoren über I2C abgefragt hatte. War schon beachtlich wie schnell der läuft. Dennoch, ein paar solche belastenden Bus Anwendungen und dann wird es doch irgendwann enge!

Zitat Zitat von André H.
Das einzigste, was man machen könnte, wäre, wenn man entweder ein 9. Zählerbit einem Port zuführt und den Pegelwechsel überwacht oder
das 8. Zählerbit zusätzlich an einem Interrupt-Port zuführt.
Aber das sag ich doch als!

Zitat Zitat von André H.
An diesem Int-Port dürfte dann aber keine weitere Interruptquelle.
Den Int-Ausgang des PCF8574 würde man dann nichtmehr nutzen.
Genau! - Sag ja, kein Aufwand!


Zitat Zitat von André H.
Ziel beim I²C-Bus ist es jedoch möglichst mit einer Interruptleitung für
die gesamte Peripherie auszukommen.
In der Robotik wird wahrscheinlich der I²C-Bus kaum verwendet, außer
höchstens einmal einen SD20 oder einen PCF8574 als Ausgangserweiterung anzuschließen.
Hier ist das Thema I²C-Bus-Interrupts sicher nicht wichtig.

Da, wie gesagt, meine Hardware für den Schwerpunkt Gebäudetechnik
entwickelt ist, ist es hier auch wichtig jede Veränderung zu erfassen.
Als Anwendungsbeispiel für das I2C-CNT8 sei hier z.B. ein Volumenstromgeber genannt, welcher Impulse höchtens mit ein paar Hz
ausgibt, wobei es jedoch z.B. bei Wärmemengenzählung wichtig ist,
die Zeitspannen etwas genauer zu erfassen, als nur bei einem Überlauf.
In der Gebäudetechnik können schnell einmal 20 bis 30 I²C-Bus-Baugruppen
an einem Bus hängen. (oder gar mehr)
(Auch eine oder mehrere RS232 am I²C-Bus, welche bei jedem empfangenen Byte einen Interrupt auslösen müssen !)
Ja im Normalfall bei deinen Anwendungen ist das ja auch alles ok. Nur beim Drehgeber finde ich das halt etwas belastend mit dauernder Abfrage, insbesondere halt bei C-Control.

Glaub wir sind uns nu mehr oder weniger einig

Gruß Frank