kann keiner helfen... ???
Hallo,
ich habe 3 Taster(mehr gehen leider nicht) und damit möchte ich folgendes steuern.
Also Taster 1, 2 und 3
1 = hoch/links
2 = runter/rechts
3 = weiter/zurück
Taster 1+2 wird hauptsächlich verwendet um in den Menüs hin und herzuschalten.
Taster 3 hat folgende Funktion
1. kurz tasten weiter
2. 3 sec. halten, dann zurück
Jetzt habe ich eine Menü und da kann ich schon navigieren mit debounce.
Dann gibts einen Menüpunkt, wo ich Variablen verändern will.
Das möchte ich gerne so machen:
Wenn ich Taster 3 festhalte und innerhalb von 3 sec. die Taster 1 oder 2 drücke, soll sich die Variable ändern, bis ich die Taster wieder loslasse.
Wie kann ich das am besten anstellen?
Meine Versuche mit Debounce fuktionieren nur mit einem Taster...
mfG
kann keiner helfen... ???
Du könntest ja nen Zähler machen, wenn 3 gedrückt wird. Wenn der dann nach 1 sek. oder überläuft, dann springst du in eine Routine die die Funktion von 1+2 ändert, ansonsten nicht.
Hast du keinen Platz mehr oder keine Pins mehr frei?Zitat von Papsi
Kannst du nicht einen Analog Eingang nehmen?
Deine doppelt-Belegung sieht schon etwas "gewöhnungsbedürftig" aus
Gruß
Rolf
1. habe ich keine Pins mehr frei
2. ist die Platine schon fertig und ich kann keine Reihenklemmen mehr nachrüsten.
War erst anders geplant, sonst hätte ich gleich 5 Taster gemacht.
Nun habe ich aber leider nur 3 zur Verfügung.
Ich habe an meiner Heizung solche eine Tastensteuersystem.
Daher wollte ich das an dieder Steuerung genauso machen.
Klappt aber irgendwie alles nicht.
Wie könnte ich das mit den Timer machen?
Wenn man schon Nachbauten macht und Leiterplatten anfertigt , sollte man vorher nachdenken und das andern nicht überlassen.
Gento
gento, das ist aber nicht sehr produktiv ....
also, man nehme einen Timer, der in seiner ISR eine globale variable hochzählt.
dann nehme men eine Subroutine, die bei keydown angesprungen
wird und loopt, solange die Taste gedrückt ist oder bis die Timervariable
einen bestimmten Wert erreicht. natürlich setzt man beim sprung in die Sub die Timervariable zurück.
hinter dem loop kann man dann unterscheiden, ob timervariable
hochgezählt ist oder nicht.
Vor den Erfolg haben die Götter den Schweiß gesetzt
@ gento
So ein Schwachsinn kannst Du Dir sparen...
Ich plane und ätze mein Zeug schon selber, aber man kann ja mal in der Testphase noch was mit einbauen, was am Anfang nicht geplant war. Und das ist hier der Fall.
wenn du noch nen analogen Port frei hast kannst du auch 5 Taster an diesen Port hängen. Musst einfach noch ein paart widerstände dazutun (Spannungsteiler)
Selbst an der Ur-Ur alten C-Control konnte man sicher 10 Taster über einen AD Port auswerten.
Und hier sollen jetzt Klimmzüge und lass mal andere nachdenken ..... greifen.
Manche sollen ja mit dem LKW zum Obi fahren um eine Flasch Wasser zu kaufen. Und womöglich noch Timergesteuert blinken.
lg Gento
Lesezeichen