Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Attiny2313 i debounce. Drgania na przełącznikach.

robgnia 30 Lis 2011 18:41 1927 6
  • #1 30 Lis 2011 18:41
    robgnia
    Poziom 10  

    Witam
    Mam problem z napisanym programem na attiny 2313, program może jest prosty ale dopiero co się uczę programowania mikroprocesorów w Bascomie.Program sam w sobie działa ale jest problem z drganiami na przełącznikach,switche mam podciągnięte do gnd,diody katodami do gnd anodami do procka.Czytałem o funkcji debounce i o timerach ale narazie timery zostawiłem na boku przyjdzie na to czas.Po prostu nie jestem w stanie weliminować tych drgań,proszę was o pomoc.
    Kod programu

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod



    Za Pomoc będę wdzięczny.
    Pozdrawiam

    0 6
  • #2 30 Lis 2011 18:50
    zabardzo
    Poziom 7  

    Zacznij od tego

    Code:
    if pin.x=0 then
    
    waitms 30
    call podprogram
    else
    end if


    Po przejściu do podprogramu też możesz dać na wstepie waitms 100 (jeśli w nim też używasz tego przycisku).

    Switch podciągnięty do masy? - rozwiń temat :)

    0
  • #3 30 Lis 2011 19:40
    mirekk36
    Poziom 42  

    zabardzo napisał:
    Zacznij od tego
    Code:
    if pin.x=0 then
    
    waitms 30
    call podprogram
    else
    end if


    Po przejściu do podprogramu też możesz dać na wstepie waitms 100 (jeśli w nim też używasz tego przycisku).

    Switch podciągnięty do masy? - rozwiń temat :)


    Kolego zabardzo, to co podpowiadasz to niestety jest niezabardzo, albo nawet gorzej :( ... spróbuj wytłumaczyć gdzie jest w tym twoim przykładzie eliminacja drgań styków? (to może sam dostrzeżesz swoje błędy), a już pomysł o dodaniu kolejnego waitms na wstępie podprogramu to już niestety w ogóle hmmm .. pomysł.

    Jeśli już Bascom panie autor, to jednak polecam ci zdecydowanie gotową funkcję, którą masz DEBOUNCE bo ona do działania żadnych timerów nie potrzebuje a bardzo dobrze robi to co ma robić jak na takie podstawowe potrzeby.

    Dodano po 1 [minuty]:

    zabardzo napisał:

    Switch podciągnięty do masy? - rozwiń temat :)


    Poza tym zwyczajowo podciąga się switch do VCC i to programowo nawet a nie zewnętrznym rezystorem, a jeśli zewnętrznym to też najlepiej do VCC.

    0
  • #4 30 Lis 2011 19:42
    robgnia
    Poziom 10  

    Witam

    Przyciski podłączone są do gnd.Narazie walczę z twoją wskazówką ale nic nie wychodzi, dalej diody reagują na drgania styków tzn. że co jakiś czas się zapalają tak jak powinny czyli jedno naciśnięcie przycisku 1 zapala jedna diodę ponowne naciśniecie zapala 2 diodę i ponowne naciśniecie zapala 3 diodę,a nieraz zapalą się 2 na raz albo 1 i 3 się zapali po jednym naciśnięciu.

    Zmieniłem trochę oprogramowanie ale problem pozostał taki sam.

    Pozdrawiam

    Witam

    Walcząc dalej wklepałem taki kod do attiny2313 ale coś nie działa jak powinien zamiast zapalać 3 diody to zapala 1 i 2 switchem gasi.

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod



    Wiem że można zastosować sprzętowe rozwiązanie, ale na taki prosty układ powinno wystarczyć polecenie debounce jak napisał kolega parę postów wyżej.

    Pozdrawiam

    2 kod który działa ale to jeszcze nie to:
    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod

    Pytanie początkującego czemu w 1 kodzie nie działa z funkcją elseif?
    pozdrawiam

    0
  • #5 01 Gru 2011 08:22
    zabardzo
    Poziom 7  

    Drganie styków możesz rozwiązać nie programowo a sprzętowo :) Wtedy będziesz wiedział czy to żeczywiście wina programu czy sprzętu.

    Proszę poprawić treść wiadomości - gramatyka.
    Poza tym, interpunkcja też jest bardzo ważna.
    [zumek]

    0
  • Pomocny post
    #6 01 Gru 2011 19:12
    jacekk232
    Poziom 16  

    Witam.
    Wypróbuj to:

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod


    Program pisany na szybkiego, ale powinien działać wg założeń.

    Pozdrawiam

    0
  • #7 02 Gru 2011 09:38
    robgnia
    Poziom 10  

    jacekk232 napisał:
    Witam.
    Wypróbuj to:
    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod


    Program pisany na szybkiego, ale powinien działać wg założeń.

    Pozdrawiam



    Witam

    Dzięki kolego jacekk232 twój program działa wyśmienicie :D, tak właśnie chciałem żeby działał.Teraz na przykładzie twojego kodu, już będę wiedział jak pisać program z wykorzystaniem switchy i funkcją debounce.Powiedz mi tylko czemu nie działał mój program z elseif co tam było zle napisane.
    Jeszcze raz dzięki za pomoc.
    Pozdrawiam wszystkich co wzieli udział w tej dyskusji.

    0
  Szukaj w 5mln produktów