Serwis Edukacyjny
w I-LO w Tarnowie
obrazek

Materiały dla uczniów liceum

  Wyjście       Spis treści       Wstecz       Dalej  

obrazek

Autor artykułu: mgr Jerzy Wałaszek
Konsultacje: Wojciech Grodowski, mgr inż. Janusz Wałaszek

©2024 mgr Jerzy Wałaszek
I LO w Tarnowie

obrazek

Mikrokontrolery

ATtiny13

Porty wejścia/wyjścia

obrazek

Educational and Non-Profit Use of Copyrighted Material:

If you use Microchip copyrighted material solely for educational (non-profit) purposes falling under the “fair use” exception of the U.S. Copyright Act of 1976 then you do not need Microchip’s written permission. For example, Microchip’s permission is not required when using copyrighted material in: (1) an academic report, thesis, or dissertation; (2) classroom handouts or textbook; or (3) a presentation or article that is solely educational in nature (e.g., technical article published in a magazine).

https://www.microchip.com/about-us/legal-information/copyright-usage-guidelines

SPIS TREŚCI
Podrozdziały

obrazek

Przegląd

Wszystkie porty AVR posiadają możliwość pracy jako wejście lub wyjście danych, gdy używa się ich jako ogólne, cyfrowe porty wejścia/wyjścia. Oznacza to, iż kierunek pracy jednego portu (wejście lub wyjście) można zmieniać bez ryzyka niezamierzonej zmiany kierunku innych portów za pomocą instrukcji SBI i CBI. To samo dotyczy stanów wyjściowych (jeśli dany port pracuje jako wyjście) lub włączania/wyłączania oporników podciągających (ang. pull-up resistors). Każdy z buforów wyjściowych posiada symetryczne Parametry obciążenia z możliwością pochłaniania lub wyprowadzania prądu. Porty posiadają wystarczającą obciążalność do sterowania bezpośrednio wyświetlaczami LED. Wszystkie porty posiadają indywidualnie wybierane oporniki podciągające o oporności niezależnej od napięcia zasilającego. Wszystkie końcówki we/wy posiadają diody zabezpieczające zarówno do Vcc jak i do masy, co zaznaczono na rysunku poniżej. Kompletną listę parametrów znajdziesz w rozdziale "Parametry elektryczne".

obrazek

Wszystkie rejestry i odwołania do bitów w tym rozdziale są zapisane w sposób ogólny. Mała litera “x” reprezentuje literową nazwę portu, a mała litera "n" reprezentuje numer bitu. Jednakże, gdy stosuje się definicje rejestru lub bitu w programie, należy stosować precyzyjną postać nazwy. Na przykład PORTB3 dla bitu nr 3 w porcie B, tutaj ogólnie zapisanego jako PORTxn. Fizyczne rejestry we/wy i pozycje ich bitów opisane są dalej w tym rozdziale.

Dla każdego portu przydzielone są trzy adresy w pamięci we/wy, po jednym dla rejestru danych – PORTx (ang. Data Register), dla rejestru kierunku danych – DDRx (ang. Data Direction Register)   i dla rejestru portu wejściowego – PINx (ang. Port Input Pins). Rejestr portu wejściowego znajduje się w komórce pamięci we/wy, której zawartość można tylko odczytywać, natomiast pozostałe komórki portów danych i można odczytywać i zapisywać. Jednakże zapis bitu o wartości 1 do bitu PINnx spowoduje odwrócenie stanu logicznego odpowiadającego mu bitu PORTxn w rejestrze danych. Dodatkowo bit wyłączania oporników podciągających (ang. Pull-up Disable, PUD w MCUCR) wyłącza funkcję podciągania dla wszystkich końcówek portów, jeśli został ustawiony.

Użycie portu we/wy jako ogólnego portu cyfrowego opisane jest w następnym podrozdziale. Większość końcówek portów jest multipleksowana z alternatywnymi funkcjami mikrokontrolera, co opisano w podrozdziale "Alternatywne funkcje Portu". Opis tych funkcji znajdziesz w dalszych rozdziałach.

Zauważ, iż włączenie alternatywnej funkcji na niektórych wyprowadzeniach portu nie wpływa na używanie innych wyprowadzeń w porcie jako ogólnego cyfrowego we/wy.


Na początek:  podrozdziału   strony 

Porty jako ogólne, cyfrowe we/wy

Porty są dwukierunkowymi portami we/wy z opcjonalnymi, wewnętrznymi opornikami podciągającymi. Poniższy rysunek pokazuje funkcjonalny opis jednej z końcówek portu we/wy, tutaj ogólnie zwanej Pxn:

obrazek

Uwaga: 1. WRx, WPx, WDx, RRx, RPx, i RDx są wspólne dla wszystkich końcówek w obrębie tego samego portu. clkI/O, SLEEP i PUD są wspólne dla wszystkich portów.

Konfigurowanie końcówki

Każda końcówka portu składa się z trzech bitów rejestrowych: DDxn, PORTxn i PINxn. Jak pokazano w podrozdziale "Opis rejestrów" bity DDxn są dostępne pod adresem we/wy DDRx, bity PORTxn pod adresem we/wy PORTx, a bity PINxn pod adresem we/wy PINx.

Bit DDxn w rejestrze DDRx wybiera kierunek pracy tej końcówki. Jeśli w DDxn jest zapisany stan logiczny 1, to Pxn zostaje skonfigurowane jako wyjście. Jeśli DDxn jest wyzerowane,, Pxn jest skonfigurowane jako końcówka wejścia.

Jeśli w PORTxn zostanie zapisany stan logiczny 1, gdy ta końcówka pracuje jako wejście, to uaktywniony będzie opornik podciągający. Aby wyłączyć opornik podciągający, należy wpisać do PORTxn zero lub skonfigurować tę końcówkę jako końcówkę wyjścia. Gdy warunek resetu staje się aktywny, końcówki portu przechodzą w stan wysokiej rezystancji, nawet jeśli nie pracuje żaden zegar.

Jeśli w PORTxn zostanie zapisany stan logiczny 1, gdy końcówka ta jest skonfigurowana jako końcówka wyjścia, to zostaje ona wysterowana w stan wysoki 1. Jeśli do PORTxn zostanie wpisane zero logiczne, gdy końcówka pracuje jako wyjście, to zostanie ona wysterowana w stan niski 0.

Zmiana stanu końcówki portu

Zapis logicznej jedynki do PINxn powoduje zmianę stanu PORTxn na przeciwny (z 1 na 0 lub z 0 na 1) niezależnie od wartości DDRxn.
Zauważ, iż do zmiany stanu na przeciwny pojedynczego bitu w porcie może zostać użyta instrukcja SBI.

Przełączanie pomiędzy trybami pracy wejścia i wyjścia

Gdy występuje przełączenie pomiędzy stanem wysokiej impedancji ({DDxn, PORTxn} = 0b00) a wyjściem w stanie wysokim 1 ({DDxn, PORTxn} = 0b11), musi pojawić się stan pośredni albo z włączonym opornikiem podciągającym ({DDxn, PORTxn} = 0b01), albo z wyjściem w stanie niskim ({DDxn, PORTxn} = 0b10). Zwykle stan z włączonym opornikiem podciągającym jest w pełni akceptowalny, ponieważ środowisko z wysoką impedancją nie zauważy różnicy pomiędzy mocnym wysterowaniem w stan wysoki a podciągnięciem za pomocą opornika. Jeśli tak nie jest, to można ustawić bit PUD w rejestrze MCUCR w celu wyłączenia oporników podciągających we wszystkich portach.

Przełączenie pomiędzy wejściem z podciąganiem oraz wyjściem w stanie niskim daje ten sam problem. Użytkownik musi użyć albo stanu wysokiej impedancji ({DDxn, PORTxn} = 0b00), albo wysokiego stanu wyjściowego ({DDxn, PORTxn} = 0b10) w kroku pośrednim. Poniższa tabela podsumowuje sygnały sterujące dla wartości sygnału na końcówce portu:

DDxn PORTxn PUD
(w MCUCR)
we/wy Podciąganie Komentarz
0 0 X Wejście Nie Stan wysokiej impedancji (Hi-Z)
0 1 0 Wejście Tak Pxn będzie wyprowadzać prąd, gdy zewnętrznie wysterowane stanem niskim
0 1 1 Wejście Nie Stan wysokiej impedancji (Hi-Z)
1 0 X Wyjście Nie Wyjście w stanie niskim (pobieranie prądu)
1 1 X Wyjście Nie Wyjście w stanie wysokim (wyprowadzanie prądu)

Odczyt wartości końcówki

Niezależnie od ustawienia bitu kierunku danych DDxn końcówka portu może być odczytywana poprzez bit rejestrowy PINxn. Jak pokazano na schemacie z początku podrozdziału bit rejestrowy PINxn i poprzedzający go przerzutnik latch tworzą synchronizator. Jest on potrzebny, aby uniknąć metastabilności, jeśli fizyczna końcówka zmienia wartość w pobliżu zbocza wewnętrznego zegar, lecz wprowadza on również pewne opóźnienie.

Poniższy rysunek pokazuje wykres czasowy synchronizacji, gdy odczytywany jest stan logiczny przykładany zewnętrznie do końcówki portu. Maksymalne i minimalne czasy opóźnień propagacyjnych są oznaczone odpowiednio jako tpd,max i tpd,min.

obrazek

Rozważmy sytuację, gdy okres zegarowy rozpoczyna się tuż za pierwszą opadającą krawędzią zegara systemowego. Przerzutnik latch jest zatrzaśnięty przy niskim poziomie sygnału zegarowego, a staje się przezroczysty (na wyjściu pojawia się sygnał z wejścia D), gdy sygnał zegara przyjmuje stan wysoki, co pokazuje na powyższym wykresie zakreskowany na czerwono obszar. Gdy sygnał zegara wróci do stanu niskiego, wartość sygnału z wejścia zostaje zatrzaśnięta w przerzutniku latch. Przy następnej krawędzi narastającej zegara stan wyjścia Q przerzutnika latch zostaje przepisany do bitu rejestru PINxn. Jak pokazują czasy tpd,max i tpd,min, przejście sygnału z końcówki do bitu portu PINxn będzie opóźnione o czas pomiędzy ½ a 1½ okresu zegara systemu.

Gdy odczytywana jest wartość końcówki portu ustawiona programowo, należy wstawić instrukcję NOP, jak pokazano na poniższym wykresie. Instrukcja OUT ustawia przerzutnik latch przy dodatniej krawędzi zegara (przejście z 0 na 1). W tym przypadku opóźnienie tpd wprowadzane przez synchronizator wynosi jeden okres zegara systemowego.

obrazek

Poniższy przykład kodu pokazuje, jak ustawić końcówki portu B 0 i 1 w stan wysoki, 2 i 3 w stan niski, i zdefiniować końcówki 4 i 5 jako wejścia z opornikiem podciągającym podpiętym do końcówki 4. Końcówki są odczytywane z powrotem, lecz jak przedyskutowano poprzednio, została wstawiona instrukcja NOP, aby móc odczytać wartość poprzednio przypisaną do niektórych z końcówek.
Przykład w kodzie maszynowym(1)
    ...
    ; Zdefiniuj podciąganie i ustaw wyjścia w stan wysoki
    ; Zdefiniuj kierunki dla końcówek portu
    ldi r16,(1<<PB4)|(1<<PB1)|(1<<PB0)
    ldi r17,(1<<DDB3)|(1<<DDB2)|(1<<DDB1)|(1<<DDB0)
    out PORTB,r16
    out DDRB,r17
    ; Wstaw NOP dla synchronizacji
    nop
    ; Odczytaj końcówki portu
    in r16,PINB
    ...
Przykład w języku C
unsigned char i;
    ...
    /* Zdefiniuj podciąganie i ustaw wyjścia w stan wysoki */
    /* Zdefiniuj kierunki dla końcówek portu */
    PORTB = (1<<PB4)|(1<<PB1)|(1<<PB0);
    DDRB = (1<<DDB3)|(1<<DDB2)|(1<<DDB1)|(1<<DDB0);
    /* Wstaw NOP dla synchronizacji */
    __no_operation();
    /* Odczytaj końcówki portu */
    i = PINB;
    ...
Uwaga: 1. W programie asemblerowym używane są dwa rejestry tymczasowe w celu zminimalizowania czasu użycia oporników podciągających na końcówkach 0, 1 i 4, aż zostaną właściwie ustawione bity kierunku, definiując bity 2 i 3 jako stan niski oraz redefiniując bity 0 i 1 jako mocno wysterowane w stan wysoki.

Uaktywnienienie wejścia cyfrowego a tryby uśpienia

Jak pokazano na schemacie z początku rozdziału, wejściowy sygnał cyfrowy może zostać zwarty do masy przed wejściem bramki Schmitta:

obrazek

Sygnał oznaczony na tym rysunku jako SLEEP jest ustawiany przez sterownik usypiania mikrokontrolera w trybie wyłączania napięcia oraz w trybie gotowości, aby uniknąć wysokiego poboru energii, jeśli jakieś sygnały wejściowe pozostawiono w stanie pośrednim np. w pobliżu wartości VCC/2. Sygnał SLEEP zostaje anulowany dla końcówek portu aktywowanych jako końcówki przerwań zewnętrznych. Jeśli żądanie przerwania zewnętrznego nie jest włączone, to sygnał SLEEP jest aktywny również dla tych końcówek.

Sygnał SLEEP jest również anulowany przez różne inne funkcje alternatywne, jak opisano w kolejnym podrozdziale.

Jeśli wysoki stan logiczny utrzymuje się na końcówce asynchronicznego przerwania zewnętrznego skonfigurowanej jako "przerwanie przy narastającym zboczu, opadającym zboczu lub zmianie stanu końcówki", gdy przerwanie zewnętrzne nie jest uaktywnione, to odpowiadający tej końcówce znacznik przerwania zewnętrznego zostanie ustawiony, gdy mikrokontroler wybudzi się z powyżej wspomnianego trybu uśpienia, ponieważ zwarcie do masy w tych trybach uśpienia powoduje zmianę stanu logicznego.

Niepodłączone końcówki

Jeśli niektóre końcówki nie są używane, to zaleca się, aby posiadały one zdefiniowany poziom. Nawet chociaż większość cyfrowych wejść jest wyłączana w głębokich trybach uśpienia, jak opisano powyżej, należy unikać "pływających" wejść (gdy sygnał wejściowy ulega zmianom), aby zmniejszyć pobór prądu we wszystkich pozostałych trybach, gdzie cyfrowe wejścia są włączone (reset, tryb aktywny i tryb bezczynny).

Najprostszą metodą zapewnienia określonego poziomu na nieużywanej końcówce jest włączenie wewnętrznego opornika podciągającego. W takim przypadku opornik podciągający zostanie wyłączony podczas resetu. Jeśli ważny jest niski pobór energii podczas resetu, zaleca się użycie zewnętrznego opornika podciągającego w górę (ang. pull-up, opornik 10k podłączony do końcówki portu i napięcia zasilającego Vcc) lub w dół (ang. pull-down, opornik 10k podłączony do końcówki portu i masy GND). Podłączanie nieużywanych końcówek bezpośrednio do Vcc lub do GND nie jest zalecane, ponieważ może to wywołać wysokie prądy, jeśli dana końcówka przypadkowo zostanie skonfigurowana jako wyjście.


Na początek:  podrozdziału   strony 

Alternatywne funkcje portów

Większość końcówek portów posiada funkcje alternatywne oprócz ogólnego wejścia/wyjścia cyfrowego. Rysunek poniżej pokazuje, jak sygnały sterujące końcówkami portu z uproszczonego rysunku z poprzedniego podrozdziału mogą zostać zastąpione funkcjami alternatywnymi:

obrazek

PUOExn: Pxn PULL-UP OVERRIDE ENABLE
włączenie anulacji opornika podciągającego dla Pxn
       PUD: PULLUP DISABLE
wyłączenie funkcji podciągania
PUOVxn: Pxn PULL-UP OVERRIDE VALUE
stan opornika podciągającego dla Pxn po anulacji
  WDx: WRITE DDRx
zapis DDRx
DDOExn: Pxn DATA DIRECTION OVERRIDE ENABLE
włączenie anulacji kierunku danych dla Pxn
  RDx: READ DDRx
odczyt DDRx
DDOVxn: Pxn DATA DIRECTION OVERRIDE VALUE
kierunek danych dla Pxn po anulacji
  RRx: READ PORTx REGISTER
odczyt rejestru PORTx
PVOExn: Pxn PORT VALUE OVERRIDE ENABLE
włączenie anulacji stanu wyjściowego portu Pxn
  WRx WRITE PORTx
zapis rejestru PORTx
PVOVxn: Pxn PORT VALUE OVERRIDE VALUE
stan wyjściowy portu Pxn po anulacji
  RPx: READ PORTx PIN
odczyt końcówki PORTx
DIEOExn: Pxn DIGITAL INPUT-ENABLE OVERRIDE ENABLE
włączenie anulacji włączenia wejścia cyfrowego dla Pxn
  WPx: WRITE PINx
zapis PINx
DIEOVxn:  Pxn DIGITAL INPUT-ENABLE OVERRIDE VALUE
stan włączenia wejścia cyfrowego Pxn po anulacji
  clkI/O:  I/O CLOCK
zegar we/wy
SLEEP sterowanie uśpieniem   DIxn: DIGITAL INPUT PIN n ON PORTx
końcówka wejścia cyfrowego w PORTx
PTOExn: Pxn, PORT TOGGLE OVERRIDE ENABLE
włączenie anulacji zmiany stanu portu Pxn na przeciwny
  AIOxn: ANALOG INPUT/OUTPUT PIN n ON PORTx
końcówka n we/wy analogowego w PORTx
Uwaga: Sygnały WRx, WPx, WDx, RRx, RPx i RDx są wspólne dla wszystkich końcówek wewnątrz tego samego portu. Sygnały clkI/O i SLEEP są wspólne dla wszystkich portów. Wszystkie pozostałe sygnały są indywidualne dla każdej końcówki.

Ilustracja na powyższym obrazku służy jako ogólny opis, który odnosi się do wszystkich końcówek portów w rodzinie mikrokontrolerów AVR. Niektóre sygnały anulujące mogą nie występować we wszystkich końcówkach portów.

Poniższa tabela podsumowuje funkcje sygnałów anulujących. Indeksy końcówek i portów z obrazka powyżej nie będą pokazywane w następnych tabelach. Sygnały anulujące są generowane wewnętrznie w modułach posiadających alternatywną funkcję.

Nazwa sygnału Pełna nazwa Opis
PUOE Pull-up Override Enable
włączenie anulacji opornika podciągającego
Jeśli sygnał ten ma wysoki poziom logiczny, to sterowanie przyłączaniem opornika podciągającego jest kontrolowane przez sygnał PUOV. Jeśli sygnał ten ma niski stan logiczny, to opornik podciągający zostanie podłączony do linii portu, gdy PUExn = 0b1.
PUOV Pull-up Override Value
stan opornika podciągającego po anulacji
Jeśli PUOE jest w stanie wysokim, to opornik podciągający jest podłączany/odłączany przez stan sygnału PUOV bez względu na ustawienie bitu rejestrowego PUExn.
DDOE Data Direction  Override Enable
włączenie anulacji kierunku danych
Jeśli sygnał ten ma stan wysoki, kierunek działania portu jest kontrolowany przez sygnał DDOV. Jeśli ten sygnał ma stan niski, to kierunkiem pracy portu steruje bit rejestrowy DDxn.
DDOV Data Direction Override Value
kierunek danych po anulacji
Jeśli DDOE ma stan wysoki, to kierunkiem pracy portu steruje sygnał DDOV bez względu na ustawienie bitu rejestrowego DDxn.
PVOE Port Value Override Enable
włączenie anulacji stanu wyjściowego portu
Jeśli sygnał ten ma stan wysoki i aktywne jest wyjście portu, to stan na tym wyjściu kontroluje sygnał PVOV. Jeśli PVOE ma stan niski i wyjście portu jest aktywne, to stan na tym wyjściu określa bit rejestrowy PORTxn.
PVOV Port Value Override Value
stan wyjścia portu po anulacji
Jeśli PVOE jest w stanie wysokim, to stan wyjścia portu (jeśli port pracuje jako wyjście) określa PVOV, bez względu na ustawienie bitu rejestrowego PORTxn.
PTOE Port Toggle Override Enable
włączenie anulacji zmiany stanu portu na przeciwny
Jeśli PTOE jest w stanie wysokim, to bit rejestrowy PORTxn zostanie zanegowany.
DIEOE Digital Input Enable Override Enable
włączenie anulacji włączenia wejścia cyfrowego
Jeśli sygnał ten jest ustawiony, to włączanie/wyłączanie wejścia cyfrowego jest kontrolowane stanem sygnału DIEOV. Jeśli sygnał DIEOE ma stan niski to włączanie/wyłączanie wejścia cyfrowego określa stan mikrokontrolera (tryb normalny, tryb uśpienia).
DIEOV Digital Input Enable Override Value
stan włączenia wejścia cyfrowego po anulacji
Jeśli sygnał DIEOE jest ustawiony, to wejście cyfrowe jest włączane/wyłączane stanem sygnału DIEOV, bez względu na stan mikrokontrolera (tryb normalny, tryb uśpienia).
DI Digital Input
wejście cyfrowe
Jest to wejście cyfrowe dla alternatywnych funkcji. Na rysunku powyżej jest ono połączone z wyjściem bramki Schmitta przed synchronizatorem. O ile wejście cyfrowe nie będzie używane jako źródło zegarowe, moduł z alternatywną funkcją będzie korzystał ze swojego własnego synchronizatora.
AIO Analog Input/Output
wejście/wyjście analogowe
Jest to analogowe wejście/wyjście dla alternatywnych funkcji. Sygnał jest bezpośrednio podłączony do końcówki mikrokontrolera i może być używany w obu kierunkach.

Kolejne podrozdziały krótko opisują alternatywne funkcje dla każdego portu oraz łączą sygnały anulujące z tymi funkcjami. Więcej szczegółów znajdziesz w opisie funkcji alternatywnych w dalszych rozdziałach.


Funkcje alternatywne portu B

Alternatywne funkcje końcówek portu B w mikrokontrolerach ATtiny13 są pokazane w poniższej tabeli:

obrazek

Końcówka Funkcja alternatywna
PB5 RESET: końcówka resetu
dW: we/wy debugWire
ADC0: wejście analogowe, kanał 0
PCINT5: przerwanie od zmiany stanu, kanał 5
PB4 ADC2: wejście analogowe, kanał 2
PCINT4: przerwanie od zmiany stanu, kanał 4
PB3 CLKI: wejście zegara zewnętrznego
ADC3: wejście analogowe, kanał 2
PCINT3: przerwanie od zmiany stanu, kanał 3
PB2 SCK: wejście zegara dla transmisji szeregowej SPI
ADC1: wejście analogowe, kanał 1
T0: źródło zegara dla timera/licznika 0
PCINT2: przerwanie od zmiany stanu, kanał 2
PB1 MISO: Master data Input, Slave data Output
AIN1: wejście odwracające dla komparatora analogowego
OC0B: wyjście zgodności porównania B z timera/licznika 0
INT0: przerwanie zewnętrzne 0
PCINT1: przerwanie od zmiany stanu, kanał 1
PB0 MOSI: Master data Output, Slave data Input
AIN0: wejście nieodwracające dla komparatora analogowego
OC0A: wyjście zgodności porównania A z timera/licznika 0
PCINT0: przerwanie od zmiany stanu, kanał 0

W dwóch poniższych tabelach zebrano sygnały zmieniające funkcje końcówek portu B:

Sygnał PB5/RESET/ADC0/PCINT5 PB4/ADC2/PCINT4 PB3/ADC3/CLKI/PCINT3
PUOE RSTDISBL(1) • DWEN(1) 0 0
PUOV 1 0 0
DDOE RSTDISBL(1) • DWEN(1) 0 0
DDOV Transmisja poprzez debugWire 0 0
PVOE 0 0 0
PVOV 0 0 0
PTOE 0 0 0
DIEOE RSTDISBL(1) + (PCINT5 • PCIE + ADC0D) PCINT4 • PCIE + ADC2D PCINT3 • PCIE + ADC3D
DIEOV ADC0D ADC2D ADC3D
DI Wejście PCINT5 Wejście PCINT4 Wejście PCINT3
AIO Wejście RESET, Wejście ADC0 Wejście ADC2 Wejście ADC3

Uwaga: 1. Ma wartość 1, gdy dany bit bezpiecznikowy został zaprogramowany na 0

Sygnał PB2/SCK/ADC1/ T0/PCINT2 PB1/MISO/AIN1/ OC0B/INT0/PCINT1 PB0/MOSI/AIN0/ AREF/OC0A/PCINT0
PUOE 0 0 0
PUOV 0 0 0
DDOE 0 0 0
DDOV 0 0 0
PVOE 0 Włączenie OC0B Włączenie OC0A
PVOV 0 OC0B OC0A
PTOE 0 0 0
DIEOE PCINT2 • PCIE + ADC1D PCINT1 • PCIE + AIN1D PCINT0 • PCIE + AIN0D
DIEOV ADC1D AIN1D AIN0D
DI Wejście T0/INT0/ PCINT2 Wejście PCINT1 Wejście PCINT0
AIO Wejście ADC1 Wejście odwracające komparatora analogowego Wejście nieodwracające komparatora analogowego

Na początek:  podrozdziału   strony 

Opis rejestrów

MCUCR – MCU Control Register – Rejestr sterujący mikrokontrolerem

Bit 7 6 5 4 3 2 1 0  
0x35 - PUD SE SM1 SM1 - ISC01 ISC00 MCUCR
Zapis/Odczyt O Z/O Z/O Z/O Z/O O Z/O Z/O  
Wartość początkowa 0 0 0 0 0 0 0 0  

Bity 7, 2 – Zarezerwowane

Te bity są w ATtiny13 zarezerwowane i przy odczycie zawsze dają wartość zero.

Bit 6 – PUD: Pull-up Disable – Wyłączenie funkcji podciągania

Gdy ten bit zostanie zapisany stanem logicznym 1, to oporniki podciągania zostają wyłączone w portach we/wy, nawet jeśli rejestry DDxn i PORTxn zostały skonfigurowane na włączenie tych oporników podciągania ({DDxn, PORTxn} = 0b01).


PORTB – Port B Data Register – Rejestr danych portu B

Bit 7 6 5 4 3 2 1 0  
0x18 - - PORTB5 PORTB4 PORTB3 PORTB2 PORTB1 PORTB0 PORTB
Zapis/Odczyt O O Z/O Z/O Z/O Z/O Z/O Z/O  
Wartość początkowa 0 0 0 0 0 0 0 0  

DDRB – Port B Data Direction Register – Rejestr kierunku danych w porcie B

Bit 7 6 5 4 3 2 1 0  
0x17 - - DDB5 DDB4 DDB3 DDB2 DDB1 DDB0 DDRB
Zapis/Odczyt O O Z/O Z/O Z/O Z/O Z/O Z/O  
Wartość początkowa 0 0 0 0 0 0 0 0  

PINB – Port B Input Pins Address – Adres odczytu stanu końcówek portu B

Bit 7 6 5 4 3 2 1 0  
0x16 - - PINB5 PINB4 PINB3 PINB2 PINB1 PINB0 PINB
Zapis/Odczyt O O Z/O Z/O Z/O Z/O Z/O Z/O  
Wartość początkowa 0 0 N/A N/A N/A N/A N/A N/A  

Na początek:  podrozdziału   strony 

Zespół Przedmiotowy
Chemii-Fizyki-Informatyki

w I Liceum Ogólnokształcącym
im. Kazimierza Brodzińskiego
w Tarnowie
ul. Piłsudskiego 4
©2024 mgr Jerzy Wałaszek

Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone
pod warunkiem podania źródła oraz niepobierania za to pieniędzy.

Pytania proszę przesyłać na adres email: i-lo@eduinf.waw.pl

Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.

Informacje dodatkowe.