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.

PORTx dla ATMELA co tu chodzi?

MieszkoI 05 Sty 2016 15:20 768 10
  • #1 05 Sty 2016 15:20
    MieszkoI
    Poziom 9  

    Znalazłem w necie taki opis PORTx dla ATMELA

    Cytat:
    PORTx – ten rejestr pełni dwie funkcje, zależnie od tego czy pin jest ustawiony jako wejście czy wyjście. W sytuacji kiedy jest to wyjście, to do tego rejestru wpisujemy wartość logiczną, która ma być na wyjściu pinu. Kiedy pin jest wejściem to wpisanie do tego rejestru jedynkę pod poszczególne bity spowoduje podciągnięcie, rezystorem podciągającym do napięcia zasilania.

    O co chodzi w stwierdzeniu
    Cytat:
    Kiedy pin jest wejściem to wpisanie do tego rejestru jedynkę pod poszczególne bity spowoduje podciągnięcie, rezystorem podciągającym do napięcia zasilania.

    0 10
  • #3 05 Sty 2016 16:24
    MieszkoI
    Poziom 9  

    Tzn. że jeżeli dany pin mam ustawiony jako wejście w DDRx, i dla tego samego pinu w PORTx ustawię 1 to na tym pinie pokaże pokaże mi się napięcie zasilani. Dobrze to zrozumiałem?

    0
  • #4 05 Sty 2016 17:35
    BlueDraco
    Specjalista - Mikrokontrolery

    Niezupełnie. Raczej "ta linia zostanie przez rezystor rzędu 50k połączona z dodatnim biegunem zasilania". Woltomierz zmierzy blisko 5V, bo ma b. dużą rezystancję wejściową.
    Podciągania używa się do ustalenia stanu wejścia, do którego podłączono przycisk połączony drugim stykiem z masą.

    0
  • #5 05 Sty 2016 17:50
    M. S.
    Poziom 34  

    Cytat:
    Tzn. że jeżeli dany pin mam ustawiony jako wejście w DDRx, i dla tego samego pinu w PORTx ustawię 1 to na tym pinie pokaże pokaże mi się napięcie zasilani. Dobrze to zrozumiałem?
    .

    Moim zdaniem dobrze to zrozumiałeś. Pojawiające się na końcówce źródło napięcia będzie miało jednak dość dużą rezystancję wewnętrzną. Diody świecącej na pewno nie zasili.

    Pamiętam moje zmagania ze sterownikiem pieca CO, który raz działał raz nie działał. Końcówki uC zasilały bazy tranzystorów obwodów wykonawczych. Spadek temperatury powodował, że sterownik działał wadliwie - nie włączał obwodów wykonawczych, mimo że w wyższych temperaturach było ok. Powodem był szkolny błąd polegający na tym, że końcówki nie były zadeklarowane jako wyjścia. W wyższej temperaturze rezystor podciągający przełączał tranzystor wykonawczy po podaniu na PORT wartości "1" i wyłączał gdy pojawiało się "0". W niskich temperaturach rezystancja podciągająca nie wystarczała.

    Możecie sobie wyobrazić jak długo szukałem błędu.

    0
  • #6 05 Sty 2016 18:08
    MieszkoI
    Poziom 9  

    Tzn. że jeżeli linia jest konfigurowana jako wejście z wysokim stanem, i

    BlueDraco napisał:
    …"ta linia zostanie przez rezystor rzędu 50k połączona z dodatnim biegunem zasilania"…
    to w związku z tym po zwarciu pinu do masy, PINx sprawdzi że na wejściu zmienił się stan. Wtedy procesor wykonuje to co ma zaprogramowane dla tej sytuacji?

    0
  • #7 05 Sty 2016 19:23
    tmf
    Moderator Mikrokontrolery Projektowanie

    MieszkoI napisał:
    Tzn. że jeżeli linia jest konfigurowana jako wejście z wysokim stanem, i
    BlueDraco napisał:
    …"ta linia zostanie przez rezystor rzędu 50k połączona z dodatnim biegunem zasilania"…
    to w związku z tym po zwarciu pinu do masy, PINx sprawdzi że na wejściu zmienił się stan. Wtedy procesor wykonuje to co ma zaprogramowane dla tej sytuacji?


    Zasadniczo tak właśnie jest.

    0
  • #8 05 Sty 2016 19:56
    MieszkoI
    Poziom 9  

    Zasadniczo, czyli jest jakiś haczyk?

    0
  • #9 05 Sty 2016 19:59
    tmf
    Moderator Mikrokontrolery Projektowanie

    Zasadniczo bo forum nie przepuszcza odpowiedzi tak lub nie - za krótkie :) Z haczyków - to program musi sprawdzić zmianę stanu pinu, chyba, że odpalisz przerwanie zmiany stanu pinu (w niektórych AVR tylko wybrane piny to umożliwiają, w innych wszystkie).

    0
  • #11 05 Sty 2016 20:02
    MieszkoI
    Poziom 9  

    No to w takim razie chyba dowiedziałem się wszystkiego co chciałam na tą chwilę o PORTx. Dziękuję wszystkim za odpowiedzi. Jak ktoś chce jeszcze coś napisać to proszę. Bo jutro kliknę "rozwiązano".

    0