mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2025-03-16 08:29:15 +01:00
LP-233 Support OneShot42
This commit is contained in:
parent
11b8ed8993
commit
32a6de6b79
@ -77,6 +77,8 @@ static int8_t counter;
|
||||
|
||||
#define ACTUATOR_ONESHOT125_CLOCK 2000000
|
||||
#define ACTUATOR_ONESHOT125_PULSE_SCALE 4
|
||||
#define ACTUATOR_ONESHOT42_CLOCK 6000000
|
||||
#define ACTUATOR_ONESHOT42_PULSE_SCALE 4
|
||||
#define ACTUATOR_PWM_CLOCK 1000000
|
||||
// Private types
|
||||
|
||||
@ -941,6 +943,10 @@ static bool set_channel(uint8_t mixer_channel, uint16_t value)
|
||||
// Remap 1000-2000 range to 125-250
|
||||
PIOS_Servo_Set(actuatorSettings.ChannelAddr[mixer_channel], value / ACTUATOR_ONESHOT125_PULSE_SCALE);
|
||||
break;
|
||||
case ACTUATORSETTINGS_BANKMODE_ONESHOT42:
|
||||
// Remap 1000-2000 range to 41,666-83,333µs
|
||||
PIOS_Servo_Set(actuatorSettings.ChannelAddr[mixer_channel], value / ACTUATOR_ONESHOT42_PULSE_SCALE);
|
||||
break;
|
||||
default:
|
||||
PIOS_Servo_Set(actuatorSettings.ChannelAddr[mixer_channel], value);
|
||||
break;
|
||||
@ -994,6 +1000,10 @@ static void actuator_update_rate_if_changed(bool force_update)
|
||||
freq[i] = 100; // Value must be small enough so CCr isn't update until the PIOS_Servo_Update is triggered
|
||||
clock[i] = ACTUATOR_ONESHOT125_CLOCK; // Setup an 2MHz timer clock
|
||||
break;
|
||||
case ACTUATORSETTINGS_BANKMODE_ONESHOT42:
|
||||
freq[i] = 100;
|
||||
clock[i] = ACTUATOR_ONESHOT42_CLOCK;
|
||||
break;
|
||||
case ACTUATORSETTINGS_BANKMODE_PWMSYNC:
|
||||
freq[i] = 100;
|
||||
clock[i] = ACTUATOR_PWM_CLOCK;
|
||||
|
@ -954,7 +954,8 @@ SystemAlarmsExtendedAlarmStatusOptions CopterControlConfigHook()
|
||||
if ((recmode == HWSETTINGS_CC_RCVRPORT_PPM_PIN8ONESHOT ||
|
||||
flexiMode == HWSETTINGS_CC_FLEXIPORT_PPM) &&
|
||||
(modes[3] == ACTUATORSETTINGS_BANKMODE_PWMSYNC ||
|
||||
modes[3] == ACTUATORSETTINGS_BANKMODE_ONESHOT125)) {
|
||||
modes[3] == ACTUATORSETTINGS_BANKMODE_ONESHOT125 ||
|
||||
modes[3] == ACTUATORSETTINGS_BANKMODE_ONESHOT42)) {
|
||||
return SYSTEMALARMS_EXTENDEDALARMSTATUS_UNSUPPORTEDCONFIG_ONESHOT;
|
||||
} else {
|
||||
return SYSTEMALARMS_EXTENDEDALARMSTATUS_NONE;
|
||||
@ -967,7 +968,8 @@ SystemAlarmsExtendedAlarmStatusOptions CopterControlConfigHook()
|
||||
case HWSETTINGS_CC_RCVRPORT_PWMNOONESHOT:
|
||||
for (uint8_t i = 0; i < ACTUATORSETTINGS_BANKMODE_NUMELEM; i++) {
|
||||
if (modes[i] == ACTUATORSETTINGS_BANKMODE_PWMSYNC ||
|
||||
modes[i] == ACTUATORSETTINGS_BANKMODE_ONESHOT125) {
|
||||
modes[i] == ACTUATORSETTINGS_BANKMODE_ONESHOT125 ||
|
||||
modes[i] == ACTUATORSETTINGS_BANKMODE_ONESHOT42) {
|
||||
return SYSTEMALARMS_EXTENDEDALARMSTATUS_UNSUPPORTEDCONFIG_ONESHOT;;
|
||||
}
|
||||
|
||||
|
@ -893,7 +893,8 @@ SystemAlarmsExtendedAlarmStatusOptions RevoNanoConfigHook()
|
||||
case HWSETTINGS_RM_RCVRPORT_PWM:
|
||||
for (uint8_t i = 0; i < ACTUATORSETTINGS_BANKMODE_NUMELEM; i++) {
|
||||
if (modes[i] == ACTUATORSETTINGS_BANKMODE_PWMSYNC ||
|
||||
modes[i] == ACTUATORSETTINGS_BANKMODE_ONESHOT125) {
|
||||
modes[i] == ACTUATORSETTINGS_BANKMODE_ONESHOT125 ||
|
||||
modes[i] == ACTUATORSETTINGS_BANKMODE_ONESHOT42) {
|
||||
return SYSTEMALARMS_EXTENDEDALARMSTATUS_UNSUPPORTEDCONFIG_ONESHOT;;
|
||||
}
|
||||
}
|
||||
|
@ -2,7 +2,7 @@
|
||||
<object name="ActuatorSettings" singleinstance="true" settings="true" category="Control">
|
||||
<description>Settings for the @ref ActuatorModule that controls the channel assignments for the mixer based on AircraftType</description>
|
||||
<field name="BankUpdateFreq" units="Hz" type="uint16" elements="6" defaultvalue="50"/>
|
||||
<field name="BankMode" type="enum" units="" elements="6" options="PWM,PWMSync,OneShot125" defaultvalue="PWM"/>
|
||||
<field name="BankMode" type="enum" units="" elements="6" options="PWM,PWMSync,OneShot125,OneShot42" defaultvalue="PWM"/>
|
||||
<field name="ChannelMax" units="us" type="int16" elements="12" defaultvalue="1000"/>
|
||||
<field name="ChannelNeutral" units="us" type="int16" elements="12" defaultvalue="1000"/>
|
||||
<field name="ChannelMin" units="us" type="int16" elements="12" defaultvalue="1000"/>
|
||||
|
Loading…
x
Reference in New Issue
Block a user