Table of Contents

Выводы входов/выходов

Библиотека выводов предназначена для оптимизации дигитальных выводов входа/выхода 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);
	}
}