我正在用 C++ 在 Raspberry Pi Pico 上设置 IRQ,但是当我编译代码时,它告诉我回调函数“未在此范围内声明”。我已经在墙上敲了几个小时了,因为该函数已声明并且是公开的。
#include <stdio.h>
#include "pico/stdlib.h"
#include "hardware/gpio.h"
uint64_t time_between_triggers;
uint16_t times_triggered;
void shaft_speed_init(uint8_t _gpio_number, uint8_t _precision, uint8_t _counts_per_turn){
gpio_set_irq_enabled_with_callback(2, GPIO_IRQ_EDGE_RISE, true, &_shaft_speed_gpio_callback);
}
void _shaft_speed_gpio_callback(uint16_t _gpio, uint32_t _event_mask) {
uint64_t trigger_time;
static uint64_t prev_trigger_time;
trigger_time = to_us_since_boot(get_absolute_time());
time_between_triggers = time_between_triggers + (trigger_time - prev_trigger_time);
prev_trigger_time = trigger_time;
times_triggered++;
}
Run Code Online (Sandbox Code Playgroud)
[main] Building folder: variable_rate_planter
[build] Starting build
[proc] Executing command: /usr/bin/cmake --build /home/taylor/Documents/Programs/Pi-Pico/variable_rate_planter/build --config Debug --target all --
[build] [2/8 12% :: …Run Code Online (Sandbox Code Playgroud)