- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 3 von 3

Thema: Menü hochzählen

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    22.01.2005
    Beiträge
    29

    Menü hochzählen

    Anzeige

    E-Bike
    Hallo Allesamt!

    Habe mal eine Frage zu Menüsteuerungen.
    Habe ein Programm geschrieben, mit welchem ich einen Wert für das PWM-Signal über zwei Taster erhöhen bzw. erniedrigen kann. Angezeigt jeweils über ein LCD.
    Am PWM-Signal hängt derzeit zu Versuchszwecken über einen Mosfet eine kleine Birne, die sich auf diesem Weg dunkler und heller machen lässt, könnte aber auch ein Motor od. ähnliches sein.
    Soweit mal mein Code:

    Initlcd
    Cls
    Do
    Debounce Pinb.0 , 0 , Pwmmehr , Sub
    Debounce Pinb.1 , 0 , Pwmweniger , Sub
    Pwm1a = Zahl
    Locate 1 , 1
    Lcd " PWM-Sollwert "
    Locate 2 , 1
    Lcd " PWM ="
    Lcd Zahl
    Loop
    Return


    Pwmmehr:
    Zahl = Zahl + 1
    If Zahl > 1024 Then Zahl = 1024
    Return

    Pwmweniger:
    Zahl = Zahl - 1
    If Zahl < 0 Then Zahl = 0
    Return

    Das funktioniert soweit ohne Probleme. Wenn ich allerdings jetzt den AD-Wandler im 10bit- Modus laufen lasse und ein PWM-Singal von 1000 erreichen möchte tippe ich mir natürlich den Wolf bis ich da endlich hingekommen bin. Ich hätte jetzt am Liebsten eine Variante wie man sie oft bei Geräten finden kann, und zwar dass das längere drücken einer Taste nach ein paar Sekunden den Hochlauf schneller vollzieht.
    Also einmal drücken -> einen Wert hochzählen.
    Auf der Taste bleiben -> langsam hochzählen.
    Nach bspw. 5 Sekunden auf der Taste bleiben -> in 10er Schritten hochzählen.

    Wie kann ich sowas realisieren? Der Debounce Befehl macht mir hierbei Schwierigkeiten, bzw. ich weiß nicht wie ich ihn richtig anwenden muß.

    Danke für Eure Tipps!

    Gruß, Martin

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    05.03.2006
    Beiträge
    10
    Hallo Martin,

    ein Vorschlag der zum Experimentieren anregen soll.



    Dim Tasten_zaehler As Word
    Const Ein = 0
    Taste_plus Alias PINB.0
    Taste_minus ALIAS PINB.1



    If Taste_plus = Ein Then
    Incr Tasten_zaehler
    Select case Tasten_zaehler
    case 5 : Gosub Pwmmehr
    case 1000: Tasten_zaehler = 900
    Gosub Pwmmehr
    case else
    End select
    Else
    Tasten_zaehler = 0
    End if

    Werte kannst du verändern um die Zeiten anzupassen.
    Den gleichen Programmteil für Taste minus.

    MfG Frank

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    22.01.2005
    Beiträge
    29
    Super, vielen Dank!
    Ich dachte ich müsste unbedingt mit dem debounce befehl arbeiten, aber mit nem Zähler ist natürlich die einfachste Variante!

    Gruß, Martin

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen