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 : byte; pin, time, active_state : byte) : byte;

Returns

  • 255 if the pin was in the active state for given period.
  • 0 otherwise

Description

Function eliminates the influence of contact flickering upon pressing a button (debouncing).

Parameter port specifies the location of the button; parameter pin is the pin number on designated port and goes from 0..7; parameter time is a debounce period in milliseconds; parameter active_state can be either 0 or 1, and it determines if the button is active upon logical zero or logical one.

Requires

Button pin must be configured as input.

Example

Example reads RB0, to which the button is connected; on transition from 1 to 0 (release of button), PORTD is inverted:

while true do
begin
  if Button(PORTB, 0, 1, 1) then oldstate := 255;
  if oldstate and Button(PORTB, 0, 1, 0) then
  begin
    PORTD := not(PORTD);
    oldstate := 0;
  end;
end;
Copyright (c) 2002-2012 mikroElektronika. All rights reserved.
What do you think about this topic ? Send us feedback!
Want more examples and libraries? 
Find them on LibStock - A place for the code