Werbung
Du musst aber bedenken, dass du damit den Rest deines Programms sehr lange blockierst. Evtl. wäre es besser, das Problem mittels Timer und Int zu lösen.
Gru0
Chris
ich wollte schon eine alternative präsentiern, weil ich selber eine lösung gebaut habe die aber nur auf einen taster zur gleichen zeit reagiert, wenn das reicht !?
einfach den Taster an einen der Interrupteingänge hängen, auf die Flanke des drückens reagieren und einen Timer starten, der erst nach 10mS überläuft (TCNT Register voreinstellen) und dann alle 100-500mS (je nach Geschmack) überläuft und dann den Zustand des Taster prüft, ist der Taster aus, wird der Timer schlafen gelegt, ist der Taster an, wird irgendetwas ausgelöst!
das geht auch mit mehreren Tastern und demselben Timer, einfach alle Taster zusammen über Dioden an den Interrupt-Pin hängen und jeden Taster einzeln an einen Pin deiner Wahl, in der Timerroutine werden dann alle Taster gleichzeitg abgefragt, aber er reagiert halt nur auf einen einzelnen Tasterdruck!
Aber in einem anderen Topic bin ich schon dran auch das Problem zu lösen!
Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
nicht.
Hi, ja hab das auch mit nem Timer gelöst!![]()
hatte nur nen Denkanstoß gebraucht.
Der Timer zählt einen Wert hoch den ich dann auswerte.
Der Timer wird beim drücken des Tasters gestartet und fängt an zu zählen.
Wird er losgelassen stoppt der Timer.
Wird während des gedrückthaltens ein bestimmter Wert überschritten führt er eine Funktion aus.
Ist während des loslassens der Wert noch unterschritten, führt er eine andere Funktion aus.
Funktioniert bestens.![]()
ich hab BMS sei gedankt jetzt ne Lösung
https://www.roboternetz.de/community...Puls-umwandeln
![]()
im Interrupt starte ich dann den Timer der nach 10mS das erste mal abfragt (entprellen) und dann alle 100mS wieder, bis keine Taste mehr gedrückt wird, dann geht der Timer wieder offline.
Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
nicht.
Lesezeichen