Re: kurze Eingaben am Digitalport I²C erfassen Kategorie: I²C-Bus (von reneforster - 2.07.2009 21:30) | ||
Als Antwort auf Re: kurze Eingaben am Digitalport I²C erfassen von Detlef - 2.07.2009 21:09 | ||
| ||
Hallo Detlef, > Ja, ich frage alle Eingänge in einer Schleife ab. Wartezeiten gibts da gar nicht. > Ich habe sogenannte "Module" zusammengelötet, in denen jeweils 1-3 "Max7311" verbaut sind. > Diese Module haben konfigurierbar 3-12 Eingänge. Für diese "Module" habe ich "Treiber" geschrieben, > also Funktionen zum Initialiseren, zum Auslesen und zum Beschreiben. > Beim Hochfahren des Systems wird versucht alle theoretisch möglichen Module zu initialisieren, > die erfolgreich Initialisierten stehen in einer Variable. Diese Variable ist der Parameter für den Thread > zum Auslesen der vorhandenen Module. Hier wird dann reihum der Treiber zum Auslesen mit den > Adressen der vorhandenenen Module ausgeführt wobei jedesmal ein INT zurückkommt. Wenn in > diesem INT was steht, wird ausgelesen, welches Bit "high" ist. Aus der Reihenfolge, welches Modul, > welches Bit ergibt sich welcher Schalter aktiv ist. Dieses wird in ein Array geschrieben. Dieses Array > akzeptiert bis zu 20 aktive Schalter gleichzeitig. Werden es mehr wird ignoriert, ist aber noch nie > vorgekommen. Ja, da liegt auch mein Denkfehler. Bausteine werden halt Adressweise ausgelesen. Macht vereinfacht gesprochen eine Anweisung und man hat 16 aktuelle Werte auf einem Streich. So wie beim tapferen Schneiderlein, obwohl der hatte nur 7 . . . Markus hatte auch von einem Integer beim max geschrieben, wie sieht so ein zurück bekommender Integerwert eigentlich aus? > Beim Zusammenlöten meiner Module habe ich das Interruptsignal nicht mit rausgeführt. Au�erdem > hatte ich teilweise nur 4-adrige Leitungen verlegt, soda� das mit dem Interuptsignal sowieso nicht > geklappt hätte. Klar, kann man das Interuptsignal der Proterweiterungen nutzen. Die hab ich aber ja > nicht im Einsatz. OK. > Also die hab ich nie gemessen, aber ich habe Schalter, die ich bestimmt 4x die Sekunde betätige, und > alle Impulse werden problemlos von der Station verarbeitet. Man kann beim besten Willen keine > Verzögerung feststellen. Es ist sogar so, da� ich viele Dimmer im Einsatz habe, die 64 Helligkeits > stufen können. Wenn ich hier von 0 auf volle Helligkeit aufziehe, mu� der Baustein 64 mal über I²C > angesprochen werden. Im Wohnzimmer, wo man "Lichtstimmungen" einstellen kann, werden > sogar vier Dimmer gleichzeitig, also hunderte I²C Pakete in wenigen Sekunden verschickt, und der > Lesethread hat immer noch keine Probleme. > > Zugegeben, wenn man in einem weiteren Zimmer zeitgleich weitere Dimmer aufzieht, merkt man, > wenn man drauf achtet, da� das Hochdimmen etwas langsamer wird... > > Also der I²C ist durch diskrete, manuell erzeugte Schaltersignale sicher nicht kleinzukriegen. > Da mü�ten dann wirklich wirklich maschinell erzeugte, höherfrequente Signale her. Ja, da sind wohl meine Bedenken mal ausgeräumt. Manchmal kann man sich nicht alles so vorstellen. Rene | ||
Antwort schreiben Antworten: Re: kurze Eingaben am Digitalport I²C erfassen (von Detlef - 2.07.2009 21:54) Re: kurze Eingaben am Digitalport I²C erfassen (von reneforster - 3.07.2009 19:40) |