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.

Bascom - Sterwonia dwoma kanałami

seja4321 26 Sty 2014 12:56 732 4
  • #1 26 Sty 2014 12:56
    seja4321
    Poziom 7  

    Witam

    Mam tak problem a mianowicie chodzi mi o sterowanie dwoma kanałami za pomocą jednego przycisku

    Mam taki program

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod


    ale niestety gdy dotknę palcem pinu do którego jest podpięty przycisk to atmega reaguje na to i załącza mi przekaźnik. Gdy dam zwykłą obsługę przycisku czyli:
    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod


    ten problem wtedy nie występuje

    Może mi ktoś powiedzieć w czym jest błąd albo jak inaczej zrobić tą obsługę?

    Dziękuję i pozdrawiam

    0 4
  • #2 26 Sty 2014 14:04
    Mateusz@
    Poziom 17  

    Dlaczego dotykasz palcem pinu?

    0
  • #3 26 Sty 2014 14:48
    seja4321
    Poziom 7  

    nie dotykam ale wytłumaczę to inaczej

    Złożyłem całe urządzenie (sterownik oświetlenia) i przy skręcaniu obudowy dotknąłem przez przypadek jednej nóżki od przycisku i wtedy usłyszałem jak uruchomił sie przekaźnik. Postanowiłem to sprawdzić. Przyciski które mają zwykłą obsługę (jeden przycisk uruchamia i gasi tylko jeden kanał) działają normalnie natomiast ten który obsługuje dwa kanały przypadkowo się uruchamia po dotknięciu pinu do którego jest podłączony i nawet czasami jest uruchamiany podczas włączenia układu do prądu.

    0
  • #4 26 Sty 2014 16:08
    emarcus
    Poziom 35  

    seja4321 napisał:
    nie dotykam ale wytłumaczę to inaczej


    .

    Tak to jest...
    Jeżeli pin wejściowy reaguje na dotyk palca, to pierwszy powód jest brak podciągania na tym porcie, jeżeli jednak port ten jest podciągnięty do Vcc to przyczyną jest błędna konfiguracja tego portu.

    Wejścia konfiguruj raczej:
    config PINB.1 = input ; zamiast: config PORTB.1 = input

    Bascom tu nie wykazuje błedu podczas kompilacji bo akceptuje tą formę configuracji dla całego portu.

    e marcus

    0
  • #5 26 Sty 2014 16:52
    Mateusz@
    Poziom 17  

    To raczej nie jest tego wina. Sprawdzałem w symulatorze i jak zmienia rejestry i nie ma żadnej różnicy, w rzeczywistym układzie też wpisywałem "config PORTB.1=input" i działało. Ale tą linijkę można sobie nawet pominąć bo rejestry DDRx domyślnie po resecie są wstawione na 0 wiec wszystkie piny są wejściami.

    polecam przeczytać punkt 6
    http://mikrokontrolery.blogspot.com/2011/04/zakocenia-w-pracy-mikrokontrolerow.html

    0