Zitat Zitat von André H.
Hallo Frank,
Und, um zum Interrupt bei Überlauf zu kommen:
Was soll das für einen Sinn machen ?
1. Wenn es zu einem Überlauf kommt, ist es bei "normalen" Zählern
meist schon zu spät, und man "verliert" Impulse.
2. Da bei I2C-CNT8 der Zähler beim Abfragen nicht zurückgesetzt wird,
mach es hier noch weniger Sinn.
3. Man benötigt den Zählerwert sicher nicht nur, wenn dieser überläuft.
Hi André,

der Sinn ist ganz einfach. Der Controller wird nur dann informiert wenn es höchste Zeit wird den Zähler mal zu checken, ansonsten wird er enorm entlastet dadurch.
Natürlich müsste der Überlauf auch gleichzeitig den Zähler zurücksetzen - das ist ja kein echtes Hardware Problem
Da ein echter Interrupt auslöst wird, vergehen bis zur Abfrag nu wirklich keine Zeitspannen, somit dürfte selbst der langsamste Controller keine Schritte verlieren. Und selbst wenn er tatsächlich zu spät abfragen würde, dann würde er ja automatisch die Schritte lesen die bereits vergangen sind seit dem Interrupt, denn der Zähle rhat sich ja zurück gestellt. Da der Controller ja weiss das ein Überlauf entstanden ist, kann er die Konstante addieren.
Natürlich will man nicht nur beim Überlauf Werte haben, es spricht ja auch nichts dagegen das der Controller zwischenzeitlich den Zähler abfragt. Siehst Du den Vorteil

Bei deiner Konzeption hat der Controller ne Menge Arbeit wenn er bei dem Interrupt auf einem Port (der bei jedem Minibewegung/Impuls) ankommt erst mal alle I2C Bausteine lesen muss.

Gruß Frank