Порты ввода-вывода ATmega2560: регистры и биты
Каждым портом управляют три регистра: DDRx задаёт направление вывода (1 — выход), PORTx — уровень на выходе, а у входа включает подтяжку к питанию, PINx читает уровни на выводах. Запись единицы в бит PINx переключает соответствующий бит PORTx.
Данные: описание ATmega2560 из пакета Microchip ATmega_DFP 3.6.299 (Apache-2.0), сверено со сводкой регистров даташита 2549Q.
Регистры блока
| Регистр | Адрес | Назначение | После сброса |
|---|---|---|---|
| PINA | 0x20 (I/O 0x00) | Входы порта A | — |
| DDRA | 0x21 (I/O 0x01) | Направление выводов порта A | 0x00 |
| PORTA | 0x22 (I/O 0x02) | Выходы и подтяжки порта A | 0x00 |
| PINB | 0x23 (I/O 0x03) | Входы порта B | — |
| DDRB | 0x24 (I/O 0x04) | Направление выводов порта B | 0x00 |
| PORTB | 0x25 (I/O 0x05) | Выходы и подтяжки порта B | 0x00 |
| PINC | 0x26 (I/O 0x06) | Входы порта C | — |
| DDRC | 0x27 (I/O 0x07) | Направление выводов порта C | 0x00 |
| PORTC | 0x28 (I/O 0x08) | Выходы и подтяжки порта C | 0x00 |
| PIND | 0x29 (I/O 0x09) | Входы порта D | — |
| DDRD | 0x2A (I/O 0x0A) | Направление выводов порта D | 0x00 |
| PORTD | 0x2B (I/O 0x0B) | Выходы и подтяжки порта D | 0x00 |
| PINE | 0x2C (I/O 0x0C) | Входы порта E | — |
| DDRE | 0x2D (I/O 0x0D) | Направление выводов порта E | 0x00 |
| PORTE | 0x2E (I/O 0x0E) | Выходы и подтяжки порта E | 0x00 |
| PINF | 0x2F (I/O 0x0F) | Входы порта F | — |
| DDRF | 0x30 (I/O 0x10) | Направление выводов порта F | 0x00 |
| PORTF | 0x31 (I/O 0x11) | Выходы и подтяжки порта F | 0x00 |
| PING | 0x32 (I/O 0x12) | Входы порта G | — |
| DDRG | 0x33 (I/O 0x13) | Направление выводов порта G | 0x00 |
| PORTG | 0x34 (I/O 0x14) | Выходы и подтяжки порта G | 0x00 |
| PINH | 0x100 | Входы порта H | — |
| DDRH | 0x101 | Направление выводов порта H | 0x00 |
| PORTH | 0x102 | Выходы и подтяжки порта H | 0x00 |
| PINJ | 0x103 | Входы порта J | — |
| DDRJ | 0x104 | Направление выводов порта J | 0x00 |
| PORTJ | 0x105 | Выходы и подтяжки порта J | 0x00 |
| PINK | 0x106 | Входы порта K | — |
| DDRK | 0x107 | Направление выводов порта K | 0x00 |
| PORTK | 0x108 | Выходы и подтяжки порта K | 0x00 |
| PINL | 0x109 | Входы порта L | — |
| DDRL | 0x10A | Направление выводов порта L | 0x00 |
| PORTL | 0x10B | Выходы и подтяжки порта L | 0x00 |
Состояния вывода
Что делает вывод Pxn при разных битах DDxn и PORTxn и общем бите PUD в MCUCR (PUD = 1 выключает подтяжки всех портов). Таблица 13-1 даташита 2549Q.
| DDxn | PORTxn | PUD | Вывод | Подтяжка | Состояние |
|---|---|---|---|---|---|
| 0 | 0 | X | вход | нет | высокий импеданс (Hi-Z) |
| 0 | 1 | 0 | вход | да | вывод отдаёт ток, если снаружи его тянут к земле |
| 0 | 1 | 1 | вход | нет | высокий импеданс (Hi-Z) |
| 1 | 0 | X | выход | нет | низкий уровень (вывод принимает ток) |
| 1 | 1 | X | выход | нет | высокий уровень (вывод отдаёт ток) |
PINA — входы порта A
Адрес 0x20 (I/O 0x00), 8 бит.
| Бит | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| Имя | PINA7 | PINA6 | PINA5 | PINA4 | PINA3 | PINA2 | PINA1 | PINA0 |
| Доступ | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W |
| После сброса | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
Бит n отвечает за вывод PAn: PA7, PA6, PA5, PA4, PA3, PA2, PA1, PA0.
DDRA — направление выводов порта A
Адрес 0x21 (I/O 0x01), 8 бит, после сброса 0x00.
| Бит | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| Имя | DDA7 | DDA6 | DDA5 | DDA4 | DDA3 | DDA2 | DDA1 | DDA0 |
| Доступ | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W |
| После сброса | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Бит n отвечает за вывод PAn: PA7, PA6, PA5, PA4, PA3, PA2, PA1, PA0.
PORTA — выходы и подтяжки порта A
Адрес 0x22 (I/O 0x02), 8 бит, после сброса 0x00.
| Бит | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| Имя | PORTA7 | PORTA6 | PORTA5 | PORTA4 | PORTA3 | PORTA2 | PORTA1 | PORTA0 |
| Доступ | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W |
| После сброса | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Бит n отвечает за вывод PAn: PA7, PA6, PA5, PA4, PA3, PA2, PA1, PA0.
PINB — входы порта B
Адрес 0x23 (I/O 0x03), 8 бит.
| Бит | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| Имя | PINB7 | PINB6 | PINB5 | PINB4 | PINB3 | PINB2 | PINB1 | PINB0 |
| Доступ | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W |
| После сброса | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
Бит n отвечает за вывод PBn: PB7, PB6, PB5, PB4, PB3, PB2, PB1, PB0.
DDRB — направление выводов порта B
Адрес 0x24 (I/O 0x04), 8 бит, после сброса 0x00.
| Бит | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| Имя | DDB7 | DDB6 | DDB5 | DDB4 | DDB3 | DDB2 | DDB1 | DDB0 |
| Доступ | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W |
| После сброса | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Бит n отвечает за вывод PBn: PB7, PB6, PB5, PB4, PB3, PB2, PB1, PB0.
PORTB — выходы и подтяжки порта B
Адрес 0x25 (I/O 0x05), 8 бит, после сброса 0x00.
| Бит | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| Имя | PORTB7 | PORTB6 | PORTB5 | PORTB4 | PORTB3 | PORTB2 | PORTB1 | PORTB0 |
| Доступ | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W |
| После сброса | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Бит n отвечает за вывод PBn: PB7, PB6, PB5, PB4, PB3, PB2, PB1, PB0.
PINC — входы порта C
Адрес 0x26 (I/O 0x06), 8 бит.
| Бит | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| Имя | PINC7 | PINC6 | PINC5 | PINC4 | PINC3 | PINC2 | PINC1 | PINC0 |
| Доступ | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W |
| После сброса | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
Бит n отвечает за вывод PCn: PC7, PC6, PC5, PC4, PC3, PC2, PC1, PC0.
DDRC — направление выводов порта C
Адрес 0x27 (I/O 0x07), 8 бит, после сброса 0x00.
| Бит | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| Имя | DDC7 | DDC6 | DDC5 | DDC4 | DDC3 | DDC2 | DDC1 | DDC0 |
| Доступ | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W |
| После сброса | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Бит n отвечает за вывод PCn: PC7, PC6, PC5, PC4, PC3, PC2, PC1, PC0.
PORTC — выходы и подтяжки порта C
Адрес 0x28 (I/O 0x08), 8 бит, после сброса 0x00.
| Бит | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| Имя | PORTC7 | PORTC6 | PORTC5 | PORTC4 | PORTC3 | PORTC2 | PORTC1 | PORTC0 |
| Доступ | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W |
| После сброса | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Бит n отвечает за вывод PCn: PC7, PC6, PC5, PC4, PC3, PC2, PC1, PC0.
PIND — входы порта D
Адрес 0x29 (I/O 0x09), 8 бит.
| Бит | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| Имя | PIND7 | PIND6 | PIND5 | PIND4 | PIND3 | PIND2 | PIND1 | PIND0 |
| Доступ | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W |
| После сброса | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
Бит n отвечает за вывод PDn: PD7, PD6, PD5, PD4, PD3, PD2, PD1, PD0.
DDRD — направление выводов порта D
Адрес 0x2A (I/O 0x0A), 8 бит, после сброса 0x00.
| Бит | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| Имя | DDD7 | DDD6 | DDD5 | DDD4 | DDD3 | DDD2 | DDD1 | DDD0 |
| Доступ | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W |
| После сброса | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Бит n отвечает за вывод PDn: PD7, PD6, PD5, PD4, PD3, PD2, PD1, PD0.
PORTD — выходы и подтяжки порта D
Адрес 0x2B (I/O 0x0B), 8 бит, после сброса 0x00.
| Бит | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| Имя | PORTD7 | PORTD6 | PORTD5 | PORTD4 | PORTD3 | PORTD2 | PORTD1 | PORTD0 |
| Доступ | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W |
| После сброса | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Бит n отвечает за вывод PDn: PD7, PD6, PD5, PD4, PD3, PD2, PD1, PD0.
PINE — входы порта E
Адрес 0x2C (I/O 0x0C), 8 бит.
| Бит | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| Имя | PINE7 | PINE6 | PINE5 | PINE4 | PINE3 | PINE2 | PINE1 | PINE0 |
| Доступ | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W |
| После сброса | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
Бит n отвечает за вывод PEn: PE7, PE6, PE5, PE4, PE3, PE2, PE1, PE0.
DDRE — направление выводов порта E
Адрес 0x2D (I/O 0x0D), 8 бит, после сброса 0x00.
| Бит | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| Имя | DDE7 | DDE6 | DDE5 | DDE4 | DDE3 | DDE2 | DDE1 | DDE0 |
| Доступ | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W |
| После сброса | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Бит n отвечает за вывод PEn: PE7, PE6, PE5, PE4, PE3, PE2, PE1, PE0.
PORTE — выходы и подтяжки порта E
Адрес 0x2E (I/O 0x0E), 8 бит, после сброса 0x00.
| Бит | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| Имя | PORTE7 | PORTE6 | PORTE5 | PORTE4 | PORTE3 | PORTE2 | PORTE1 | PORTE0 |
| Доступ | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W |
| После сброса | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Бит n отвечает за вывод PEn: PE7, PE6, PE5, PE4, PE3, PE2, PE1, PE0.
PINF — входы порта F
Адрес 0x2F (I/O 0x0F), 8 бит.
| Бит | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| Имя | PINF7 | PINF6 | PINF5 | PINF4 | PINF3 | PINF2 | PINF1 | PINF0 |
| Доступ | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W |
| После сброса | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
Бит n отвечает за вывод PFn: PF7, PF6, PF5, PF4, PF3, PF2, PF1, PF0.
DDRF — направление выводов порта F
Адрес 0x30 (I/O 0x10), 8 бит, после сброса 0x00.
| Бит | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| Имя | DDF7 | DDF6 | DDF5 | DDF4 | DDF3 | DDF2 | DDF1 | DDF0 |
| Доступ | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W |
| После сброса | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Бит n отвечает за вывод PFn: PF7, PF6, PF5, PF4, PF3, PF2, PF1, PF0.
PORTF — выходы и подтяжки порта F
Адрес 0x31 (I/O 0x11), 8 бит, после сброса 0x00.
| Бит | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| Имя | PORTF7 | PORTF6 | PORTF5 | PORTF4 | PORTF3 | PORTF2 | PORTF1 | PORTF0 |
| Доступ | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W |
| После сброса | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Бит n отвечает за вывод PFn: PF7, PF6, PF5, PF4, PF3, PF2, PF1, PF0.
PING — входы порта G
Адрес 0x32 (I/O 0x12), 8 бит.
| Бит | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| Имя | — | — | PING5 | PING4 | PING3 | PING2 | PING1 | PING0 |
| Доступ | R | R | R/W | R/W | R/W | R/W | R/W | R/W |
| После сброса | 0 | 0 | N/A | N/A | N/A | N/A | N/A | N/A |
Бит n отвечает за вывод PGn: PG5, PG4, PG3, PG2, PG1, PG0.
DDRG — направление выводов порта G
Адрес 0x33 (I/O 0x13), 8 бит, после сброса 0x00.
| Бит | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| Имя | — | — | DDG5 | DDG4 | DDG3 | DDG2 | DDG1 | DDG0 |
| Доступ | R | R | R/W | R/W | R/W | R/W | R/W | R/W |
| После сброса | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Бит n отвечает за вывод PGn: PG5, PG4, PG3, PG2, PG1, PG0.
PORTG — выходы и подтяжки порта G
Адрес 0x34 (I/O 0x14), 8 бит, после сброса 0x00.
| Бит | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| Имя | — | — | PORTG5 | PORTG4 | PORTG3 | PORTG2 | PORTG1 | PORTG0 |
| Доступ | R | R | R/W | R/W | R/W | R/W | R/W | R/W |
| После сброса | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Бит n отвечает за вывод PGn: PG5, PG4, PG3, PG2, PG1, PG0.
PINH — входы порта H
Адрес 0x100, 8 бит.
| Бит | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| Имя | PINH7 | PINH6 | PINH5 | PINH4 | PINH3 | PINH2 | PINH1 | PINH0 |
| Доступ | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W |
| После сброса | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
Бит n отвечает за вывод PHn: PH7, PH6, PH5, PH4, PH3, PH2, PH1, PH0.
DDRH — направление выводов порта H
Адрес 0x101, 8 бит, после сброса 0x00.
| Бит | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| Имя | DDH7 | DDH6 | DDH5 | DDH4 | DDH3 | DDH2 | DDH1 | DDH0 |
| Доступ | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W |
| После сброса | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Бит n отвечает за вывод PHn: PH7, PH6, PH5, PH4, PH3, PH2, PH1, PH0.
PORTH — выходы и подтяжки порта H
Адрес 0x102, 8 бит, после сброса 0x00.
| Бит | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| Имя | PORTH7 | PORTH6 | PORTH5 | PORTH4 | PORTH3 | PORTH2 | PORTH1 | PORTH0 |
| Доступ | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W |
| После сброса | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Бит n отвечает за вывод PHn: PH7, PH6, PH5, PH4, PH3, PH2, PH1, PH0.
PINJ — входы порта J
Адрес 0x103, 8 бит.
| Бит | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| Имя | PINJ7 | PINJ6 | PINJ5 | PINJ4 | PINJ3 | PINJ2 | PINJ1 | PINJ0 |
| Доступ | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W |
| После сброса | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
Бит n отвечает за вывод PJn: PJ7, PJ6, PJ5, PJ4, PJ3, PJ2, PJ1, PJ0.
DDRJ — направление выводов порта J
Адрес 0x104, 8 бит, после сброса 0x00.
| Бит | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| Имя | DDJ7 | DDJ6 | DDJ5 | DDJ4 | DDJ3 | DDJ2 | DDJ1 | DDJ0 |
| Доступ | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W |
| После сброса | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Бит n отвечает за вывод PJn: PJ7, PJ6, PJ5, PJ4, PJ3, PJ2, PJ1, PJ0.
PORTJ — выходы и подтяжки порта J
Адрес 0x105, 8 бит, после сброса 0x00.
| Бит | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| Имя | PORTJ7 | PORTJ6 | PORTJ5 | PORTJ4 | PORTJ3 | PORTJ2 | PORTJ1 | PORTJ0 |
| Доступ | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W |
| После сброса | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Бит n отвечает за вывод PJn: PJ7, PJ6, PJ5, PJ4, PJ3, PJ2, PJ1, PJ0.
PINK — входы порта K
Адрес 0x106, 8 бит.
| Бит | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| Имя | PINK7 | PINK6 | PINK5 | PINK4 | PINK3 | PINK2 | PINK1 | PINK0 |
| Доступ | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W |
| После сброса | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
Бит n отвечает за вывод PKn: PK7, PK6, PK5, PK4, PK3, PK2, PK1, PK0.
DDRK — направление выводов порта K
Адрес 0x107, 8 бит, после сброса 0x00.
| Бит | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| Имя | DDK7 | DDK6 | DDK5 | DDK4 | DDK3 | DDK2 | DDK1 | DDK0 |
| Доступ | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W |
| После сброса | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Бит n отвечает за вывод PKn: PK7, PK6, PK5, PK4, PK3, PK2, PK1, PK0.
PORTK — выходы и подтяжки порта K
Адрес 0x108, 8 бит, после сброса 0x00.
| Бит | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| Имя | PORTK7 | PORTK6 | PORTK5 | PORTK4 | PORTK3 | PORTK2 | PORTK1 | PORTK0 |
| Доступ | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W |
| После сброса | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Бит n отвечает за вывод PKn: PK7, PK6, PK5, PK4, PK3, PK2, PK1, PK0.
PINL — входы порта L
Адрес 0x109, 8 бит.
| Бит | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| Имя | PINL7 | PINL6 | PINL5 | PINL4 | PINL3 | PINL2 | PINL1 | PINL0 |
| Доступ | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W |
| После сброса | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
Бит n отвечает за вывод PLn: PL7, PL6, PL5, PL4, PL3, PL2, PL1, PL0.
DDRL — направление выводов порта L
Адрес 0x10A, 8 бит, после сброса 0x00.
| Бит | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| Имя | DDL7 | DDL6 | DDL5 | DDL4 | DDL3 | DDL2 | DDL1 | DDL0 |
| Доступ | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W |
| После сброса | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Бит n отвечает за вывод PLn: PL7, PL6, PL5, PL4, PL3, PL2, PL1, PL0.
PORTL — выходы и подтяжки порта L
Адрес 0x10B, 8 бит, после сброса 0x00.
| Бит | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| Имя | PORTL7 | PORTL6 | PORTL5 | PORTL4 | PORTL3 | PORTL2 | PORTL1 | PORTL0 |
| Доступ | R/W | R/W | R/W | R/W | R/W | R/W | R/W | R/W |
| После сброса | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Бит n отвечает за вывод PLn: PL7, PL6, PL5, PL4, PL3, PL2, PL1, PL0.
Частые вопросы
Какими командами ассемблера обращаться к регистрам порты ATmega2560?
Командами IN и OUT доступны PINA (0x00), DDRA (0x01), PORTA (0x02), PINB (0x03), DDRB (0x04), PORTB (0x05), PINC (0x06), DDRC (0x07), PORTC (0x08), PIND (0x09), DDRD (0x0A), PORTD (0x0B), PINE (0x0C), DDRE (0x0D), PORTE (0x0E), PINF (0x0F), DDRF (0x10), PORTF (0x11), PING (0x12), DDRG (0x13) и PORTG (0x14); из них PINA, DDRA, PORTA, PINB, DDRB, PORTB, PINC, DDRC, PORTC, PIND, DDRD, PORTD, PINE, DDRE, PORTE, PINF, DDRF, PORTF, PING, DDRG и PORTG — ещё и командами SBI, CBI, SBIS и SBIC для отдельных битов. PINH, DDRH, PORTH, PINJ, DDRJ, PORTJ, PINK, DDRK, PORTK, PINL, DDRL и PORTL лежат за пределами области ввода-вывода, их читают и пишут командами LDS и STS (или LD и ST) по адресу в пространстве данных. В программе на C разницы нет: компилятор сам выбирает команду по адресу из avr/io.h.
Какие значения у регистров порты после сброса?
Все регистры блока, для которых даташит 2549Q приводит значение после сброса (DDRA, PORTA, DDRB, PORTB, DDRC, PORTC, DDRD, PORTD, DDRE, PORTE, DDRF, PORTF, DDRG, PORTG, DDRH, PORTH, DDRJ, PORTJ, DDRK, PORTK, DDRL и PORTL), после сброса равны нулю.
Источники
- Microchip. Atmel. ATmega640/V-1280/V-1281/V-2560/V-2561/V datasheet (2549Q) — сводка регистров, диаграммы битов и значения после сброса
- Microchip ATmega_DFP 3.6.299, описание ATmega2560 (ATDF) — регистры, битовые поля и их значения, лицензия Apache-2.0
Нашли ошибку в регистрах?
Другие регистры ATmega2560
- Все регистры ATmega2560Таблица по адресам
- Аналоговый компараторACSR, ADCSRB, DIDR1
- USART0–USART3UCSR0A, UCSR0B, UCSR0C, UBRR0, UDR0, UCSR1A
- TWI (I²C)TWBR, TWSR, TWAR, TWDR, TWCR, TWAMR
- SPISPCR, SPSR, SPDR
- Таймер-счётчик 0 (8 бит)TIFR0, GTCCR, TCCR0A, TCCR0B, TCNT0, OCR0A
- Таймер-счётчик 2 (8 бит, асинхронный)TIFR2, GTCCR, TIMSK2, TCCR2A, TCCR2B, TCNT2
- EEPROMEECR, EEDR, EEAR
- Таймеры-счётчики 1, 3, 4 и 5 (16 бит)TIFR1, TIMSK1, TCCR1A, TCCR1B, TCCR1C, TCNT1
- Внешние прерыванияPCIFR, EIFR, EIMSK, PCICR, EICRA, EICRB
- Ядро и системные регистрыGPIOR0, GPIOR1, GPIOR2, OCDR, SMCR, MCUSR
- АЦПADC, ADCSRA, ADCSRB, ADMUX, DIDR2, DIDR0