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][Atmega32] Przyciski na porcie D.2 i D.3

pier 03 Cze 2013 17:22 1065 4
  • #1 03 Cze 2013 17:22
    pier
    Poziom 23  

    Witam.

    Buduje sterownik do pompy C.O. i jestem na etapie sprawdzania czy wszystkie jego bloki reagują prawidłowo.
    I właśnie przyciski podpięte pod portd.2 i portd.3 za nic nie chcą działać jak należy.
    Jest jeszcze przycisk podpięty pod portd.4 który działa jak należy.

    Otóż dwa pierwsze przyciski zachowują się tak jakby były cały czas wciśnięte. Jak widać na załączonym programiku wszystkie są identycznie skonfigurowane.
    Na płytce zwarć nie ma na pewno. Tak jakby coś było źle skonfigurowane dla tych dwóch switch-y lub może czegoś nie wyłączyłem w atmedze co pracuje na porcie d.2 i d.3.

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod


    Na program za bardzo nie patrzcie jest on tylko do sprawdzenia poszczególnych bloków.
    Proszę o jakieś sugestie.

    0 4
  • Pomocny post
    #2 03 Cze 2013 17:33
    piotrva
    Moderator na urlopie...

    Nie działa bo masz nie włączone podciąganie do plusa.
    Rejestry PIN nie służą do zapisu w tym procesorze (tylko w niektórych modelach zapis 1-dynki do nich powoduje zmianę stanu odpowiadającego bitu w rejestrze PORT).
    http://www.atmel.com/Images/doc2503.pdf - strona 64
    Musisz dać dla każdego przycisku po instrukcji Config ... Input instrukcję Set Portd.x lub Portd.x=1
    Tyle w temacie, warto czytać noty katalogowe ;-)

    0
  • #3 03 Cze 2013 18:24
    pier
    Poziom 23  

    No wielkie dzięki teraz działa.
    Szczerze powiem że sam bym pewnie tego nie znalazł i nigdy o tym nie słyszałem.

    A Powiedz czemu przycisk podłączony pod portd.4 działał prawidłowo pomimo podciągnięcia do plusa za pomocą:

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod

    0
  • #4 03 Cze 2013 18:29
    piotrva
    Moderator na urlopie...

    Przez przypadek. Czysty przypadek.
    Sam pamiętam, jak kiedyś zapomniałem w ogóle włączyć podciągania (zakomentowała mi się w C o jedna linijka za dużo) i też część przycisków działała poprawnie, a część nie. Ale to są już zagadki elektroniki analogowej i fizyki, a konkretnie ładunków jakie gromadzą się na ścieżkach/kablach w momencie odczytu pinu.

    0
  • #5 03 Cze 2013 22:35
    M. S.
    Poziom 34  

    Byłem kiedyś jeszcze lepszy. W sterowniku kotła CO nie zadeklarowałem portów jako wyjścia, czyli działały jako wejścia. Oprogramowałem je jako wyjścia sterujące tranzystorami bipolarnymi i co? Działało! Działało do czasu gdy spadła temperatura powietrza w pomieszczeniu. Wentylator nie uruchamiał się, a piec zasypywało węglem. Nie życzę nikomu poszukiwania takiej "usterki".

    0