Aha. Ok, vielen Dank.
In welchem Zeitintervall werden dann diese DigitalPIN vom Prozessor abgefragt? Ist das im unteren Millisekundenbereich?
Andi
Nö- von alleine fragt der gar nix ab.
Entweder du benutzt Interrupts (dann merkt er automatisch, wenn du was drückst oder loslässt) oder aber du sagst ihm, wie oft er die Eingänge abfragen soll.
Da ich weder mit Leonardos noch mit Micros arbeite, weiss ich nicht, wie lange das Einlesen dauert, aber da es um digitale Eingänge geht, wirds nicht schlimm sein (analog dauert ein klein bisschen) auf jeden Fall weit schneller als man Tasten drücken könnte- denk dabei auch ans entprellen.
Bei manuell betätigten Tasten sind Frequenzen im einstelligen Millisekundenbereich völlig illusorisch (so schnell _kann_ man sie nicht drücken), wenn du die also alle 2/100s einliest (und das geht, wenn man nich im Hautprogramm rumtüdelt), wird das vollkommen reichen.
Wie gesagt: entprellt werden muss sowieso, egal wie man das anstellt: es wird länger dauern als das Einlesen selber.
Falls du es wirklich genau wissen musst: Dokus lesen. Irgendwo auf den Arduino-Seiten (den richtigen, nich abgeschriebener Kram) steht, wie man die Zeit, die die loop() für einen Durchlauf braucht, messen kann.
So kannst du leicht ermitteln, wie schnell alles läuft.
Grüssle, Sly
..dem Inschenör ist nix zu schwör..
einfach ausgedrückt, kannst du die PCF8674-Pin-Zustände genau so abfragen wie Pinzustände an den GPIO-Pins, nämlich in immer wiederkehrenden Schleifen oder per Timer- oder per Pinchange-Interrupts.
Da der PCF8674 aber über I2C gesteuert wird, können höchstens alle (ca) 5ms die Werte aktualisiert werden, während sich GPIOs im 10-Nanosenkundenbereich abfragen lassen.
Hinzu kommt, dass in Interruptroutinen die i2c-Abfrage blockieren kann und die dann u.U. nicht immer ganz "rund" läuft.
Weiterer Nachteil von PCF8574 u.ä. ist, dass sie sich nicht immer auch für pwm verwenden lassen, da sie zu langsam reagieren.
Kommt es dir also auf viele Pins auch für zeitkritische Anwendungen an, helfen IMO nur andere MCUs mit von sich aus vielen GPIO-Header-Pins, wie Arduino Mega2560 oder Due.
Danke für Eure Antworten. Soooo zeitkritisch ist es nicht. Ich möchte das - einfach ausgedrückt - in eine Art Gegensprechanlage integrieren. RUF-Taste drücken und sprechen. Da sind Millisekunden mehr als ausreichend. Ich hatte Bedenken, dass das möglicherweise im Sekundentakt abgefragt wird.
Interrupts klingen eigentlich für diese Anwendung recht interessant. Aber hier heißt es wohl auch: aufpassen. Aus dem Bauch heraus: würdet Ihr das, was ich plane, per Interrupts realisieren, oder per Loop-Schleife?
Andi
Es gibt noch kein Programm. Mit Portexpander hab ich noch nicht gearbeitet.
Als Board dachte ich an einen UNO.
Andi
Lesezeichen