mirror of
https://github.com/ArduPilot/ardupilot
synced 2025-03-12 09:33:59 -03:00
AP_IOMCU: support oneshot mode
This commit is contained in:
parent
ba3cdf74b5
commit
30903f2acb
@ -67,7 +67,6 @@ enum ioevents {
|
|||||||
IOEVENT_FORCE_SAFETY_OFF,
|
IOEVENT_FORCE_SAFETY_OFF,
|
||||||
IOEVENT_FORCE_SAFETY_ON,
|
IOEVENT_FORCE_SAFETY_ON,
|
||||||
IOEVENT_SET_ONESHOT_ON,
|
IOEVENT_SET_ONESHOT_ON,
|
||||||
IOEVENT_SET_ONESHOT_OFF,
|
|
||||||
IOEVENT_SET_RATES,
|
IOEVENT_SET_RATES,
|
||||||
IOEVENT_GET_RCIN,
|
IOEVENT_GET_RCIN,
|
||||||
IOEVENT_ENABLE_SBUS,
|
IOEVENT_ENABLE_SBUS,
|
||||||
@ -218,6 +217,13 @@ void AP_IOMCU::thread_main(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (mask & EVENT_MASK(IOEVENT_SET_ONESHOT_ON)) {
|
||||||
|
if (!modify_register(PAGE_SETUP, PAGE_REG_SETUP_FEATURES, 0, P_SETUP_FEATURES_ONESHOT)) {
|
||||||
|
event_failed(IOEVENT_SET_ONESHOT_ON);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// check for regular timed events
|
// check for regular timed events
|
||||||
uint32_t now = AP_HAL::millis();
|
uint32_t now = AP_HAL::millis();
|
||||||
if (now - last_rc_read_ms > 20) {
|
if (now - last_rc_read_ms > 20) {
|
||||||
@ -548,4 +554,10 @@ void AP_IOMCU::set_default_rate(uint16_t rate_hz)
|
|||||||
trigger_event(IOEVENT_SET_DEFAULT_RATE);
|
trigger_event(IOEVENT_SET_DEFAULT_RATE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// setup for oneshot mode
|
||||||
|
void AP_IOMCU::set_oneshot_mode(void)
|
||||||
|
{
|
||||||
|
trigger_event(IOEVENT_SET_ONESHOT_ON);
|
||||||
|
}
|
||||||
|
|
||||||
#endif // HAL_WITH_IO_MCU
|
#endif // HAL_WITH_IO_MCU
|
||||||
|
@ -70,6 +70,9 @@ public:
|
|||||||
// set default output rate
|
// set default output rate
|
||||||
void set_default_rate(uint16_t rate_hz);
|
void set_default_rate(uint16_t rate_hz);
|
||||||
|
|
||||||
|
// set to oneshot mode
|
||||||
|
void set_oneshot_mode(void);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
AP_HAL::UARTDriver &uart;
|
AP_HAL::UARTDriver &uart;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user