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 |
sub function Button(dim byref port as word, dim pin as word, dim time as word, dim ActiveState as word) as 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 |
Stellaris
program Button_Test
dim oldstate as byte
main:
GPIO_Digital_Input(@GPIO_PORTE_DATA_BITS, _GPIO_PINMASK_1) ' Set PE1 as digital input
GPIO_Digital_Output(@GPIO_PORTF_DATA_BITS, _GPIO_PINMASK_ALL) ' Set GPIO_PORTF as digital output
oldstate = 0
while TRUE
if (Button(GPIO_PORTE_DATA, 1, 1, 1) <> 0) then ' detect logical one on PE1 pin
oldstate = 1 ' update flag
end if
if (oldstate and Button(GPIO_PORTE_DATA, 1, 1, 0)) then ' detect one-to-zero transition on PE1 pin
GPIO_PORTF_DATA = not GPIO_PORTF_DATA ' invert GPIO_PORTF value
oldstate = 0 ' update flag
end if
wend ' endless loop
end.
STM32
program Button_Test
dim oldstate as byte
main:
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
if (Button(GPIOA_IDR, 0, 1, 1) <> 0) then ' detect logical one on PA0 pin
oldstate = 1 ' update flag
end if
if (oldstate and Button(GPIOA_IDR, 0, 1, 0)) then ' detect one-to-zero transition on PA0 pin
GPIOD_ODR = not GPIOD_ODR ' invert PORTD value
oldstate = 0 ' update flag
end if
wend ' 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!



