timer_gpio Timer GPIO example

This example uses the timer interrupt to periodically change the state of a digital output. The digital output may be a relay, a led or anything else. This example can be very useful to validate timer drivers by using a logic analyzer connected to the digital output. This example mainly differs from the timer example because it waits on a sigwaitinfo() instead of using a signal handler. This approach ensures a deterministic wake-up time when the signal occurs.

Dependencies:

  • CONFIG_TIMER – The timer driver must be selected.

  • CONFIG_DEV_GPIO – The GPIO driver must be selected.

Note: You should also select one timer instance and have the gpio driver properly configured in your board logic.

Example configuration:

  • EXAMPLES_TIMER_GPIO_TIM_DEVNAME – This is the name of the timer device

    that will be used. Default: /dev/timer0.

  • EXAMPLES_TIMER_GPIO_GPIO_DEVNAME – This is the name of the gpio device

    that will be used. Default: /dev/gpio0.

  • EXAMPLES_TIMER_GPIO_INTERVAL – This is the timer interval in

    microseconds. Default: 1000000.

  • EXAMPLES_TIMER_GPIO_SIGNO – This is the signal number that is used to

    notify that a timer interrupt occurred. Default: 32.

  • EXAMPLES_TIMER_GPIO_STACKSIZE – This is the stack size allocated when the

    timer task runs. Default: 2048.

  • EXAMPLES_TIMER_GPIO_PRIORITY – This is the priority of the timer task. Default: 255.

  • EXAMPLES_TIMER_GPIO_PROGNAME – This is the name of the program that will

    be used from the nsh. Default: timer_gpio.