2022年5月5日木曜日

Raspberry Pi Pico プログラミング事始め。SWでのHW割り込み

 続いて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 件のコメント:

コメントを投稿