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

ATxmaga128 - Dziwny objaw przy odczycie portu

JohnCTN 04 Maj 2015 02:43 513 2
  • #1 04 Maj 2015 02:43
    JohnCTN
    Poziom 17  

    Witam

    Pisze pewien program i zatrzymałem się w jednym punkcie.
    Próbuję odczytać jeden bit z portu i mam dziwny objaw.

    kod poniżej:

    Kod: asm
    Zaloguj się, aby zobaczyć kod




    Jeżeli podłączę dany bit do 3.3V (logiczne 1) przed uruchomieniem układu (lub zresetuje mikrokontroler)

    to petla testInterface się zakończy program poleci dalej

    jak odłączę dany bit od 3.3V a nóżka jest podciągnięta do masy poprzez rezystor podciągający to sygnał jest automatycznie 0.

    w Takim wypadku pętla powinna się zapętlić do czasu aż na tej nóżce będzie podpięte 3.3V. Niestety tak się nie dzieje, zwieram do 3.3V i nadal wszystko się zapętla tak jakby nóżka nie reagowała na zmianę stanu.
    Dziwne jest to, ze gdy wcześniej podepnę 3.3V do nóżki i uruchomię układ to podczas testowania wejścia tej nóżki od razu pętla się zakończy.

    Zauważyłem jeszcze dziwny objaw ... gdy do nóżki nie podłączę 3.3V i nóżka będzie podciągnięta do GND i dotknę obudowę mikrokontrolera to mikrokontroler wyskoczy z pętli tak jakby miał logiczna 1 na testowanym bicie.

    Oczywiście nie dotykam nóżek układu a tylko samą obudowę.

    Może mi ktoś doradzić dlaczego się tak dzieje ?

    0 2
  • Arrow Multisolution Day
  • Pomocny post
    #2 04 Maj 2015 09:18
    tmf
    Moderator Mikrokontrolery Projektowanie

    A o który pin IO ci chodzi? Bo to co robisz cztery piny portu ustawia jako wyjście (3-6), pozostałe jako wejście. Potem odczytujesz stan portu, ale twoje maskowanie andi wycina tylko pin 1. W efekcie twój warunek jest spełniony jeśli wszystkie piny z wyjątkiem pinu nr 1 (którego stan jest bez znaczenia) są równe zero. Ponieważ inne piny też są wejściami i do niczego nie są podłączone to ich stan pływa i obserwujesz to co obserwujesz. Na koniec - warto taki kod testować sobie w symulatorze, od razu widać czy wszystko jest skonfigurowane tak jak chcesz.

    0
  • Arrow Multisolution Day
  • #3 04 Maj 2015 18:06
    JohnCTN
    Poziom 17  

    Tomek dzięki... o 3 w nocy człowiek już nie najlepiej myśli, banalny błąd ... poprawiłem i wszystko działa :D

    0