logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[Atmega8][Bascom] Inteligentny / Wielofunkcyjny Przycisk

Duch__ 05 Sie 2008 12:17 3459 6
REKLAMA
  • #1 5409677
    Duch__
    Poziom 31  
    Witam. Jak zrealizować w Bascomie inteligentny przycisk tzn.
    Nacisnę go raz to wyświetla mi np. temperaturę max i min, i tak za każdym razem, a gdy przytrzymam go dłużej to resetuje mi tą wartość.

    Opcja taka jest często spotykana np. w samochodach. W moim Punto jest tak że jak raz naciskam przycisk na desce rozdzielczej to zmieniam opcję wyświetlania (przebieg , spalanie itd.) a jak go przytrzymam dłużej to kasuje mi przebieg dzienny.

    Jak taką samą funkcję dot. obsługi przycisku przenieść na język Bascom?

    Pozdrawiam Duch__
  • REKLAMA
  • #2 5409804
    wojnar
    Poziom 17  
    Ja w ramach nauki próbowałem takim czymś:
    
       Do                                                       'malá smyčka pro zjištění dlouhého stisku "Mode"
          If Tlac_mode = 0 Then                                 'Pokud je stisknuto tlačítko "Mode" déle,
             Incr Stisk_dlouhy                                  'tato smyčka kontroluje jak dlouho
             Waitms 10                                          '
                If Stisk_dlouhy > 200 Then                      'pokud je stisk tlačítka dostatečně dlouhý
                   Stisk_dlouhy = 0                             'vynuluje počítadlo déky stisku
                   Call Nastaveni                               'a skočí na podprogram Nastaveni
                End If                                          '
             Else                                               '
             Stisk_dlouhy = 0                                   'pokud ne, také vynuluje počítadlo a
             Exit Do                                            'vyskočí z této smyčky
          End If                                                '
       Loop                                                     'konec smyčky pro zjištění dlouhého stisku "Mode"
    


    Muszę tłumaczyć :-)
  • REKLAMA
  • #3 5409809
    elektroziom
    Poziom 20  
    Witam ;)

    Może w pętli która sprawdza stan przycisku (do..loop programu głównego, albo np w etykiecie obsługi przerwania od licznika) zastosować warunek i inkrementację zmiennej pomocniczej, która podczas gdy przycisk będzie przytrzymany będzie zwiekszać swoja wartość.

    Można zastosować póniej warunek sprawdzający jej wartość, jeżeli jest taka jaką zadamy w warunku(czyli określony czas przytrzymania) to nastąpi skok do etykiety w której zmienna pomocnicza zostanie wyzerowana a także zmienna np w Twoim przykładzie zmienna z temperaturą. Jezeli przycisk zostanie puszczony przed ustaleniem sie odpowiedniej wartości w zmiennej pomocniczej (przez inkrementację) to zostanie wyświetlona wartość bieżącej temperatury oraz wyzerowanie zmiennej pomocniczej. Taki przykład ;)
  • REKLAMA
  • #4 5409819
    wojnar
    Poziom 17  
    ...a właściwie opisałeś mój sposób :-)
    Dzięki.
  • REKLAMA
  • #5 5410093
    Duch__
    Poziom 31  
    To nie jest jeszcze to co oczekuje, mianowicie:

    Są 3 tryby pracy:

    -Wyświetlanie temperatury (główny)
    - Po jednym naciśnięciu przycisku przechodzi do wyświetlania temp max i min i czeka na kolejne instrukcje

    - a jeżeli ten sam przycisk jest naciśnięty dłużej (np. 3sekundy) to przechodzi do resetowania wartości max i min i wraca do wyświetlania temperatury.
  • #7 5411399
    wojnar
    Poziom 17  
    Duch__ napisał:
    To nie jest jeszcze to co oczekuje, mianowicie:

    Są 3 tryby pracy:

    -Wyświetlanie temperatury (główny)
    - Po jednym naciśnięciu przycisku przechodzi do wyświetlania temp max i min i czeka na kolejne instrukcje

    - a jeżeli ten sam przycisk jest naciśnięty dłużej (np. 3sekundy) to przechodzi do resetowania wartości max i min i wraca do wyświetlania temperatury.

    ... a prawie, że jest! W programie z którego jest ten fragment, to po naciśnięciu przycisku raz wyświetla czas "rzeczywisty" a raz czas pracy maszyny, po długim naciśnięciu przechodzi w tryb ustawienia czasu (godzin). Ja pokazałem a kolega elektroziom opisał tylko fragment obsługi "długiego naciśnięcia".
REKLAMA