Библиотека выводов предназначена для оптимизации дигитальных выводов входа/выхода AVR. Цель библиотеки облегчить использование выводов AVR. Пользователь может создать в программе переменную для желаемого вывода, которой присваивается физический адрес вывода при помощи специальной макрофункции. Затем при помощи переменной можно вызвать различные функции для смены направления и состояния вывода и их чтения.
Назначая физическую шину (порт) вывода и индекс только один раз и в одном месте, можно легко поменять программу в случае физических изменений. Например, если сначала индикатором используется один LED, можно с помощью простого изменения программы начать использовать другой LED. Из переменных выводом можно создавать массивы, например для составления шин.
Пример того, как сделать значение одного вывода зависимым от другого. В программе выводу PC3 присваивается обратное выводу PC0 значение:
#include <homelab/pin.h> pin output_pin = PIN(C, 3); pin input_pin = PIN(C, 0); int main(void) { bool value; // Установка вывода выходом pin_setup_output(output_pin); // Установка вывода входом с помощью резистора pull-up pin_setup_input_with_pullup(input_pin); // Бесконечный цикл while (true) { // Считывание значения входного вывода value = pin_get_value(input_pin); // Присвоение обратного значения выходному выводу pin_set_to(output_pin, !value); } }