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][BASCIOM-AVR] Nie działają przyciski.

fiskusmati 03 Wrz 2010 18:46 1624 13
REKLAMA
  • #1 8472286
    fiskusmati
    Użytkownik obserwowany
    Podłączylem 3 microswitche poprzez rezystor 470r do masy, lecz nie działają - wymieniałem procesor i jest to samo.
    Odczytuje stany przycisków funkcją if, oraz debounce - w celu sprawdzenia czy odczytuje stan przycisku poprawnie, zapala diodę led. Tzn, ma zapalać bo tego nie robi. Dioda działa, połączenia też są ok. Niestety wcale nie działa.

    na początku programu config pind.5 = input, potem alias s1, a w pętli do loop if s1=0 then set ledred oczywiscie 25ms sprawdzałem ale też nie działa.



    microswitche dość specyficznie podłączałem i nie wiem czy tak moźe być, otóż 3 nóżki podłączone są do masy poprzez wspólny dla 3 przycisków rezystor a jedna nóżka do procesora. Zrobiłem tak dlatego bo łatwiej było mi to zrobić na płytce.


    Czy ktoś ma pomysł czemu to nie działa, czy musze koniecznie zamieścic schemat i program testowy.


    Pozdrawiam
  • REKLAMA
  • Pomocny post
    #2 8472317
    alien_audio
    Poziom 21  
    Witam.
    Podłącz rezystor 10K od plusa zasilania do pind.5
  • REKLAMA
  • Pomocny post
    #3 8472320
    gaskoin
    Poziom 38  
    a mógłbyś podać schemat i program bo z tego co piszesz wynika nic ;) microswitchy jest milion rodzajów
  • REKLAMA
  • #4 8472455
    fiskusmati
    Użytkownik obserwowany
    rezystor dodatkowo mam podłączyc pomiędzy pd5 i 5V+?
  • REKLAMA
  • Pomocny post
    #5 8472506
    alien_audio
    Poziom 21  
    Tak, podciągnij pind.5 do plusa zasilania rezystorem 10K
    i wtedy dla przykładu sprawdź czy działa robiąc zwarcie Pind.5 do masy zamiast mikroprzycisku jak zadziała prawidłowo to podłącz przycisk
  • Pomocny post
    #6 8472519
    Ture11
    Poziom 39  
    Nie można w tej sytuacji użyć programowego podciągania do plusa?
  • #7 8472525
    fiskusmati
    Użytkownik obserwowany
    pind5 do masy bezposredmio czy przez rezystor

    Dodano po 1 [minuty]:

    próbowałem uzywzać funkcji set i ale bez zmian
  • Pomocny post
    #9 8472565
    alien_audio
    Poziom 21  
    Bezpośrednio do masy można zwierać.
    Można to zrobić instrukcją set portd.5
  • #10 8472737
    fiskusmati
    Użytkownik obserwowany
    a jeżeli nadal nie działa?
  • Pomocny post
    #11 8472753
    Ture11
    Poziom 39  
    Ma to być mniej-więcej tak:
    Config pind.5 = input
    set portd.5
    s1 alias pind.5
    do
    if s1 = 0 then
    ------------------
    end if
    loop

    masz coś takiego? Bardzo ważny jest układ nazw PIND i PORTD
    Wyjście za przyciskiem bezpośrednio do masy. Masz tak? Jeśli nadal nie działa może być konieczne podanie schematu i wsadu.

    Dodano po 1 [minuty]:

    A skonfigurowałeś pin diody jako wyjście komendą Config pinx.x = output ?
  • #12 8473557
    fiskusmati
    Użytkownik obserwowany
    po wciśnięciu przycisku zwiera pin atmegi do masy poprzez rezystor 470r
  • Pomocny post
    #13 8473593
    Ture11
    Poziom 39  
    zewrzyj na sucho, znaczy bez tych mikroswitchy. Jeśli zadziała, to wina jest w oporniku.
  • #14 8473612
    fiskusmati
    Użytkownik obserwowany
    problem rozwiiązany, wina była w hardware- chodzi o zmasowanie 3 nożek przycisku.
REKLAMA