main.c 633 bytes
#include <stdio.h>
#include "board.h"
#include "periph/gpio.h"
#include "ztimer.h"
void timer_cb (void *arg) {
  (void)arg;
  gpio_toggle(LED0_PIN);
  gpio_irq_enable(BTN0_PIN);
void button_irq_handler(void *arg) {
  (void)arg;
  static ztimer_t timer_handler = {
    .callback = timer_cb,
    .arg = NULL
  gpio_irq_disable(BTN0_PIN);
  ztimer_set(ZTIMER_USEC, &timer_handler, 300 * US_PER_MS);
int main(void) {
  gpio_init(LED0_PIN, GPIO_OUT);
  gpio_init(BTN0_PIN, GPIO_IN_PU);
  gpio_init_int(BTN0_PIN, GPIO_IN_PU, GPIO_BOTH, button_irq_handler, NULL);
  for (;;) {
    ztimer_sleep(ZTIMER_USEC, US_PER_SEC);