zephyr/samples/basic/button
Anas Nashif a1d7794647 samples: minor documentation tweaks
Change-Id: I9efe25dbc808c635d895ffe2893afb68f4088ad1
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-01-06 18:49:24 -05:00
..
src samples: button: set EDGE to SW0_GPIO_INT_CONF if defined 2017-01-05 16:35:47 +00:00
Makefile samples: tests: remove obsolete KERNEL_TYPE and kernel variables 2016-11-04 15:47:25 -04:00
prj.conf samples: move basic samples to samples/basic 2016-10-27 22:14:31 +00:00
README.rst samples: minor documentation tweaks 2017-01-06 18:49:24 -05:00
testcase.ini samples: move basic samples to samples/basic 2016-10-27 22:14:31 +00:00

Button demo
###########

Overview
========

A simple button demo showcasing the use of GPIO input with interrupts.

Requirements
============

The demo assumes that a push button is connected to one of GPIO lines. The
sample code is configured to work on boards with user defined buttons and that
have defined the SW0_* variable in board.h

To use this sample, you will require a board that defines the user switch in its
header file. The :file:`board.h` must define the following variables:

- SW0_GPIO_NAME
- SW0_GPIO_PIN

The following boards currently define the above variables:

- bbc_microbit
- cc3200_launchxl
- frdm_k64f
- nrf51_pca10028
- nrf52840_pca10056
- nrf52_pca10040
- nucleo_f103rb
- quark_d2000_crb
- quark_se_c1000_devboard
- quark_se_c1000_ss_devboard


Building and Running
====================

This sample can be built for multiple boards, in this example we will build it
for the nucleo_f103rb board:

.. code-block:: console

   $ cd samples/basic/button
   $ make BOARD=nucleo_f103rb


After startup, the program looks up a predefined GPIO device, and configures the
pin in input mode, enabling interrupt generation on falling edge. During each
iteration of the main loop, the state of GPIO line is monitored and printed to
the serial console. When the input button gets pressed, the interrupt handler
will print an information about this event along with its timestamp.