This repository has been archived on 2023-07-17. You can view files and clone it, but cannot push or open issues or pull requests.
bl_mcu_sdk/examples/peripherals/gpio/gpio_interrupt/main.c
2022-12-21 20:25:59 +08:00

35 lines
752 B
C

#include "bflb_gpio.h"
#include "bflb_mtimer.h"
#include "board.h"
struct bflb_device_s *gpio;
void gpio_isr(int irq, void *arg)
{
static int i = 0;
bool intstatus = bflb_gpio_get_intstatus(gpio, GPIO_PIN_0);
if (intstatus) {
bflb_gpio_int_clear(gpio, GPIO_PIN_0);
printf("%d\r\n", i++);
}
}
int main(void)
{
board_init();
gpio = bflb_device_get_by_name("gpio");
printf("gpio interrupt\r\n");
bflb_gpio_int_init(gpio, GPIO_PIN_0, GPIO_INT_TRIG_MODE_SYNC_LOW_LEVEL);
bflb_gpio_int_mask(gpio, GPIO_PIN_0, false);
bflb_irq_attach(gpio->irq_num, gpio_isr, gpio);
bflb_irq_enable(gpio->irq_num);
while (1) {
printf("helloworld\r\n");
bflb_mtimer_delay_ms(2000);
}
}