Доступ к портам МК осуществляется через адресное пространство ОЗУ, что позволяет изменять конфигурацию портов без изменения функций, осуществляющих собственно доступ к портам.
Каждый используемый порт должен быть зарегистрирован вызовом функции gate_port_register().
Структуры данных | |
| struct | GATE_PORT |
| Конфигурация порта ввода/вывода. Подробнее... | |
Функции | |
| GATE_RESULT | gate_port_register (uint8_t number, GATE_PORT *spec) |
| Регистрация порта. | |
| GATE_RESULT | gate_port_config (uint8_t number, uint8_t mask, uint8_t value) |
| Настройка режима ввода/вывода порта. | |
| GATE_RESULT | gate_port_write (uint8_t number, uint8_t mask, uint8_t value) |
| Запись в порт. | |
| GATE_RESULT | gate_port_read (uint8_t number, uint8_t *bits) |
| Чтение из порта. | |
| GATE_RESULT | gate_port_reserve (uint8_t number, uint8_t mask, uint8_t value) |
| Переключение отдельных битов порта на выполнение специальных функций. | |
| GATE_RESULT gate_port_config | ( | uint8_t | number, | |
| uint8_t | mask, | |||
| uint8_t | value | |||
| ) |
Настройка режима ввода/вывода порта.
| number | Идентификатор порта | |
| mask | Маска, определяющая, режим каких выводов порта изменить. | |
| value | Биты режима. Единица - вывод работает как выход, 0 - как вход. |
Перекрестные ссылки GATE_PORT::busy_mask, GATE_PORT::DDR, GATE_PORT::default_busy_mask, GR_INVALID_PORT и GR_OK.
| GATE_RESULT gate_port_read | ( | uint8_t | number, | |
| uint8_t * | bits | |||
| ) |
Чтение из порта.
| number | Идентификатор порта | |
| bits | Указатель на переменную, в которую помещается считанное значение. |
Перекрестные ссылки GR_INVALID_PORT, GR_OK и GATE_PORT::PIN.
| GATE_RESULT gate_port_register | ( | uint8_t | number, | |
| GATE_PORT * | spec | |||
| ) |
Регистрация порта.
Связывает номер порта с конкретными регистрами ввода/вывода.
| number | Идентификатор порта | |
| spec | Указатель на конфигурацию порта |
Перекрестные ссылки GATE_PORT::busy_mask, GATE_PORT::default_busy_mask, GR_DUPLICATE_PORT, GR_INVALID_ARG, GR_OK, GATE_PORT::next и GATE_PORT::number.
| GATE_RESULT gate_port_reserve | ( | uint8_t | number, | |
| uint8_t | mask, | |||
| uint8_t | value | |||
| ) |
Переключение отдельных битов порта на выполнение специальных функций.
Эта функция вызывается драйверами устройств для резервирования определенных разрядов порта под собственные нужды. На зарезервированные разряды порта не влияют вызовы gate_port_config() и gate_port_write().
| number | Идентификатор порта | |
| mask | Маска, определяющая, режим каких выводов порта изменить. | |
| value | Биты режима. Единица - вывод используется драйвером устройства, 0 - вывод работает как цифровая линия ввода/вывода. |
Перекрестные ссылки GATE_PORT::busy_mask, GATE_PORT::default_busy_mask, GR_INVALID_PORT и GR_OK.
| GATE_RESULT gate_port_write | ( | uint8_t | number, | |
| uint8_t | mask, | |||
| uint8_t | value | |||
| ) |
Запись в порт.
| number | Идентификатор порта | |
| mask | Маска, определяющая, состояние каких выводов порта изменить. | |
| value | Значение выводимое в порт. |
Перекрестные ссылки GATE_PORT::busy_mask, GATE_PORT::default_busy_mask, GR_INVALID_PORT, GR_OK и GATE_PORT::PORT.
1.5.6