Button Library
The Button Library provides routines for detecting button presses and debouncing (eliminating the influence of contact flickering upon pressing a button)
Library Routines
Button
Prototype |
function Button(var port: word; pin: word; time: word; ActiveState: word) : word; |
---|---|
Description |
The function eliminates the influence of contact flickering upon pressing a button (debouncing). The Button pin is tested just after the function call and then again after the debouncing period has expired. If the pin was in the active state in both cases then the function returns 255 (true). |
Parameters |
|
Returns |
|
Requires |
Nothing. |
Example |
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 |
None. |
Copyright (c) 2002-2012 mikroElektronika. All rights reserved.
What do you think about this topic ? Send us feedback!
What do you think about this topic ? Send us feedback!