19 #if CONFIG_HAL_BOARD == HAL_BOARD_PX4 || CONFIG_HAL_BOARD == HAL_BOARD_VRBRAIN 21 #include <board_config.h> 48 if (dt > 100 && dt < 1000*1000) {
54 #if CONFIG_HAL_BOARD == HAL_BOARD_PX4 || CONFIG_HAL_BOARD == HAL_BOARD_VRBRAIN 95 #if CONFIG_HAL_BOARD == HAL_BOARD_PX4 || CONFIG_HAL_BOARD == HAL_BOARD_VRBRAIN 98 #ifdef GPIO_GPIO0_INPUT 101 gpio = GPIO_GPIO0_INPUT;
104 gpio = GPIO_GPIO1_INPUT;
107 gpio = GPIO_GPIO2_INPUT;
110 gpio = GPIO_GPIO3_INPUT;
113 gpio = GPIO_GPIO4_INPUT;
116 gpio = GPIO_GPIO5_INPUT;
119 #endif // GPIO_GPIO5_INPUT 123 stm32_gpiosetevent(
last_gpio,
false,
false,
false,
nullptr);
136 stm32_gpiosetevent(gpio,
true,
false,
false,
158 float rpm = scaling * (1.0e6 / dt_avg) * 60;
163 if ((maximum <= 0 || rpm <= maximum) && (rpm >= minimum)) {
167 quality = 1 -
constrain_float((fabsf(rpm-filter_value))/filter_value, 0.0, 1.0);
168 quality = powf(quality, 2.0);
ModeFilterFloat_Size5 signal_quality_filter
AP_Float _minimum[RPM_MAX_INSTANCES]
AP_RPM_Pin(AP_RPM &ranger, uint8_t instance, AP_RPM::RPM_State &_state)
const AP_HAL::HAL & hal
-*- tab-width: 4; Mode: C++; c-basic-offset: 4; indent-tabs-mode: nil -*-
virtual T apply(T sample)
static int irq_handler1(int irq, void *context)
static int irq_handler0(int irq, void *context)
virtual bool attach_interrupt(uint8_t interrupt_num, AP_HAL::Proc p, uint8_t mode)=0
AP_RPM::RPM_State & state
#define RPM_MAX_INSTANCES
bool is_zero(const T fVal1)
static struct IrqState irq_state[RPM_MAX_INSTANCES]
#define HAL_GPIO_INTERRUPT_RISING
float constrain_float(const float amt, const float low, const float high)
int8_t get_pin(void) const
static void irq_handler(uint8_t instance)
virtual void restore_interrupts(void *)
AP_Float _maximum[RPM_MAX_INSTANCES]
AP_Float _scaling[RPM_MAX_INSTANCES]
virtual void * disable_interrupts_save(void)
AP_HAL::Scheduler * scheduler