sry, deine Konstruktion verstehe ich nicht, ich würde es ganz anders machen - da muss dann jemand anders 'ran![]()
sry, deine Konstruktion verstehe ich nicht, ich würde es ganz anders machen - da muss dann jemand anders 'ran![]()
Wie wäre dein Prinzip um meherer Kontakte gleichzeitig auf Zustandsänderung, Entprellung und neuem Zustand (ohne delay) zu überprüfen?
Hierbei wird bei jedem loop-Durchlauf,
1. auf Zustandsänderung geprüft; if((KontZustNeu = digitalRead(KontPin)) == EntprellStatus) return 3;
2. wenn sich der Kontaktzustand ändert, wird das bei jedem loop-Durchlauf neu geprüft
3. sollte sich der Kontaktzustand innerhalb von 5ms ändern, wird die Startzeit resetet
4. sollten dann >=5ms keine Zustandänderungen passieren, wird je nach Zustand 0(LOW) oder 1(HIGH) zurück gegeben.
5. und das für beliebig viele Kontakte und ohne delay()
PS: Entprellzeit = 5ms ist eine globale Variable und als Beispiel zu verstehen
__________________________________________________ _
| Sprache: C | Teensy 3.2 | Arduino 2.x | Status: EwigerAnfaenger |
Lesezeichen