続いてSWでのHW割り込みをかけてみた。
特にハマるところはなし。
callback関数が呼び出されたら、割り込みを一度OFFして関数を抜けるときに再度割り込みをONにする。
#include "pico/stdlib.h"
#include <stdio.h>
const uint input_PIN = 20;
void callback_keyirq() {
gpio_set_irq_enabled(input_PIN, 0x4u, false);
printf("push_sw\n");
gpio_set_irq_enabled(input_PIN, 0x4u, true);
}
int main() {
stdio_init_all();
gpio_init(input_PIN);
gpio_set_dir(input_PIN, GPIO_IN);
const uint LED_PIN = 22;
gpio_init(LED_PIN);
gpio_set_dir(LED_PIN, GPIO_OUT);
gpio_set_irq_enabled_with_callback(input_PIN, 0x4u, false, callback_keyirq);
gpio_set_irq_enabled(input_PIN, 0x4u, true);
while (true) {
gpio_put(LED_PIN, 1);
sleep_ms(200);
gpio_put(LED_PIN, 0);
sleep_ms(200);
}
}
0 件のコメント:
コメントを投稿