Differences

This shows you the differences between two versions of the page.

Link to this comparison view

ru:software:homelab:library:pin [2013/08/14 23:37] – создано eduardtlmkru:software:homelab:library:pin [Unknown date] (current) – removed - external edit (Unknown date) 127.0.0.1
Line 1: Line 1:
-====== Выводы входов/выходов ====== 
- 
-Библиотека выводов предназначена для оптимизации дигитальных выводов входа/выхода AVR. Цель библиотеки облегчить использование выводов AVR. Пользователь может создать в программе переменную для желаемого вывода, которой присваивается физический адрес вывода при помощи специальной макрофункции. Затем при помощи переменной можно вызвать различные функции для смены направления и состояния вывода и их чтения. 
- 
-Назначая физическую шину (порт) вывода и индекс только один раз и в одном месте, можно легко поменять программу в случае физических изменений. Например, если сначала индикатором используется один LED, можно с помощью простого изменения программы начать использовать другой LED. Из переменных выводом можно создавать массивы, например для составления шин. 
- 
-===== Типы данных ===== 
- 
-  * **//pin//** \\ Структурный тип данных для удержания регистров вывода и битовой маски. Переменные типа //pin// константны и их следует инициализировать в начале программы. Для облегчения инициализации существует макрофункция //PIN//, первый параметр которой – это обозначение шины (заглавная латинская буква A, B, C, итд.) и второй номер вывода (0-7).  
- 
-===== Функции ===== 
- 
-  * **//void pin_setup_output(pin pin)//** \\ Установка вывода выходом. Параметры: 
-    * //pin// - Переменная вывода. 
-  * **//void pin_setup_input(pin pin)//** \\ Установка вывода входом без резистора //pull-up.// Параметры: 
-    * //pin// - Переменная вывода. 
-  * **//void pin_setup_input_with_pullup(pin pin)//** \\ Установка вывода входом с резистором //pull-up//. Параметры: 
-    * //pin// - Переменная вывода. 
-  * **//void pin_set(pin pin)//** \\ Установка выходного вывода высоким. Параметры: 
-    * //pin// - Переменная вывода. 
-  * **//void pin_clear(pin pin)//** \\ Установка выходного вывода в низкое положение. Параметры: 
-    * //pin// - Переменная вывода. 
-  * **//void pin_toggle(pin pin)//** \\ Инвертирование положения выходного вывода. Низкое положение меняется на высокое и наоборот. Параметры: 
-    * //pin// - Переменная вывода. 
-  * **//void pin_set_to(pin pin, bool value)//** \\ Установка выходного вывода в желаемое положение с помощью параметра. Параметры: 
-    * //pin// - Переменная вывода. 
-    * //value// - Переменная значения //true/false//. 
-  * **//bool pin_get_value(pin pin)//** \\ Считывание положения входного вывода и возвращение функцией. Параметры: 
-    * //pin// - Переменная вывода. 
-    * Возвращает значение //true// или //false//. 
-  * **//bool pin_get_debounced_value(pin pin)//** \\ Считывание положения входного вывода через противодребезговый фильтр выключателя и его возвращение. Фильтрация происходит минимально за 8 ms и максимально за 100 ms, в зависимости от того, как быстро закончится дребезг выключателя. Если оно не закончится через 100 ms, функция возвратит //false//. Функция использует программную паузу из библиотеки задержек функций. Параметры: 
-    * //pin// - Переменная вывода. 
-    * Возвращает значение //true// или //false//. 
- 
-===== Пример ===== 
- 
-Пример того, как сделать значение одного вывода зависимым от другого. В программе выводу PC3 присваивается обратное выводу PC0 значение: 
- 
-<code c> 
-#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); 
- } 
-} 
-</code> 
  
ru/software/homelab/library/pin.1376512625.txt.gz · Last modified: (external edit)
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0