35 lines
752 B
C
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);
|
|
}
|
|
}
|