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.

[ATmega8][C] - Stan portu po załączeniu napięcia

crisdean 26 Paź 2013 20:05 726 6
  • #1 26 Paź 2013 20:05
    crisdean
    Poziom 12  

    Mam diodę LED podłączoną katodą do portu uC, rezystor > LED i anoda do VCC.

    Jeśli na początku zdefiniuję:

    Kod: c
    Zaloguj się, aby zobaczyć kod


    następnie, w funkcji, gdzie działam na danym porcie, mam:
    Kod: c
    Zaloguj się, aby zobaczyć kod


    to po załączeniu zasilania dioda świeci, dopiero pierwsze wciśnięcie i zwolnienie przycisku ją gasi. To normalne bo po załączeniu na pinach jest tzw. stan trzeci Hi-Z tak? czy winno się łączyć diodę anodą do portu uC?

    wiem, że pytanie jest dla wielu na tym forum trywialne, żeby nie powiedzieć głupie, ale każdy przechodził, przez etap n a u k i .

    0 6
  • #2 26 Paź 2013 20:11
    kazzik87
    Poziom 11  

    Powinno być:

    Kod: c
    Zaloguj się, aby zobaczyć kod

    0
  • #3 26 Paź 2013 20:15
    BlueDraco
    Specjalista - Mikrokontrolery

    Błąd!
    Powinno być:
    DDRC = LED_1;
    Domyślnie wszystkie linie są wejściami, więc nie trzeba nic robić z DDRD dla przycisku, za to być może należy mu ustawić podciąganie w PORTD.

    0
  • Pomocny post
    #4 26 Paź 2013 20:19
    Tomasz Gumny
    Poziom 27  

    Po RESET w DDRC i PORTC są zera, co oznacza wejście bez podciągnięcia, czyli HiZ. Jeśli na początku programu ustawisz DDRC jako wyjście, a PORTC zostawisz, to masz wyjście w stanie niskim i LED świeci.

    0
  • #5 26 Paź 2013 20:24
    crisdean
    Poziom 12  

    mogę więc w definicji LED_1_ON zapisać:?

    Kod: c
    Zaloguj się, aby zobaczyć kod


    A dokładniej
    Kod: c
    Zaloguj się, aby zobaczyć kod

    i działa.

    Dziękuję koledzy.

    0
  • Pomocny post
    #6 26 Paź 2013 20:28
    Tomasz Gumny
    Poziom 27  

    Nie kombinuj tylko w inicjalizacji ustaw bit LED w DDRC i PORTC.

    0
  • #7 26 Paź 2013 20:34
    crisdean
    Poziom 12  

    Oba sposoby są dobre (mówie dla tych którzy będa szukać pomocy)

    albo na początku w definicji:

    Kod: c
    Zaloguj się, aby zobaczyć kod


    lub w inicjalizacji:
    Kod: c
    Zaloguj się, aby zobaczyć kod

    0