nRF51 SDK v9.0.0
GPIOTE Example

The GPIOTE Example shows how to use the GPIOTE peripheral by toggling a LED.

The application starts with configuring the GPIOTE output pin to toggle on a GPIOTE task. Timer 0 is then configured to generate events every 200 milliseconds. The events are passed through the PPI peripheral to generate tasks, which are then used by GPIOTE (in task mode) to toggle the GPIO pin. This means that every time there is an EVENT_COMPARE event, the GPIO pin toggles automatically, which can only be achieved using the GPIOTE peripheral.

The task flow is as follows:

[TIMER0]->EVENT_COMPARE->[PPI]->GPIOTE_TASK_OUT->[GPIOTE]->toggle_pin

*          ----------------                       --------------------------
*  -Start-|    Timer0      |                     |   EEP |    PPI    |  TEP |-------
*  ------>|  CC[0] = 200ms |-----Timer0_Event--->|       | Channel 0 |      |       |
* |        ----------------                       --------------------------        |
* |                                                                                 |
* |    -----------------------------------------------------------------------------
* |   |
* |   |                 -----------------                      ---------------
* |    ---------TASK-->|     GPIO_TE     |-->Toggled_Output-->|  LED toggling |--
* |                     -----------------                     |  every 200ms  |  |
* |                                                            ---------------   |
*  ------------------------------------------------------------------------------
*
* 

Setup

The name of the example is gpiote_pca10028. If you are not using the Keil Pack Installer, you can find the source code and project file of the example in the following folder: <InstallFolder>\examples\peripheral\gpiote

LED assignments:

Testing

Test the GPIOTE Example application by performing the following steps:

  1. Compile and program the application.
  2. Observe that LED 1 toggles at the rate of 200 milliseconds.

This document was last updated on Thu Jul 9 2015.
Please send us your feedback about the documentation! For technical questions, visit the Nordic Developer Zone.