Библиотека кнопок
Библиотека кнопок предоставляет процедуры для обнаружения нажатия кнопок и дебонирования (исключение влияния мерцания контакта при нажатии кнопки)
Процедуры библиотеки
Button
Прототип |
function Button(var port: word; pin: word; time: word; ActiveState: word) : word; |
---|---|
Описание |
Функция устраняет влияние мерцания контакта при нажатии кнопки (debouncing). Штырь кнопки проверяется сразу после вызова функции, а затем снова после истечения периода отладки. Если штырь находился в активном состоянии в обоих случаях, функция возвращает 255 (true). |
Параметры |
|
Возвращает |
|
Требует |
Ничего |
Пример |
Stellarisprogram Button_Test; var oldstate : byte; begin GPIO_Digital_Input(@GPIO_PORTE_DATA_BITS, _GPIO_PINMASK_1); // Set GPIO_PORTE.1 as digital input GPIO_Digital_Output(@GPIO_PORTF_DATA_BITS, _GPIO_PINMASK_ALL); // Set GPIO_PORTF as digital output oldstate := 0; while TRUE do begin if (Button(GPIO_PORTE_DATA, 1, 1, 1)) then // detect logical one on PE1 pin oldstate := 1; if (oldstate and Button(GPIO_PORTE_DATA, 1, 1, 0)) then begin // detect one-to-zero transition on PE1 pin GPIO_PORTF_DATA := not GPIO_PORTF_DATA; // invert GPIO_PORTF value oldstate := 0; end; end; // endless loop end. STM32program Button_Test; var oldstate : byte; begin GPIO_Digital_Input(@GPIOA_BASE, _GPIO_PINMASK_0); // Set PA0 as digital input GPIO_Digital_Output(@GPIOD_BASE, _GPIO_PINMASK_ALL); // Set PORTD as digital output oldstate := 0; while TRUE do begin if (Button(GPIOA_IDR, 0, 1, 1)) then // detect logical one on PA0 pin oldstate := 1; if (oldstate and Button(GPIOA_IDR, 0, 1, 0)) then begin // detect one-to-zero transition on PA0 pin GPIOD_ODR := not GPIOD_ODR; // invert PORTD value oldstate := 0; end; end; // endless loop end. |
Notes |
Нет. |