Compare commits

...

1 Commits

Author SHA1 Message Date
Daniel Agar 0608a7fcc4 WIP: dsm bind default to DSMX 11 ms 2020-12-24 15:30:05 -05:00
2 changed files with 24 additions and 8 deletions

View File

@ -384,17 +384,22 @@ void dsm_bind(uint16_t cmd, int pulses)
SPEKTRUM_RX_AS_GPIO_OUTPUT(); SPEKTRUM_RX_AS_GPIO_OUTPUT();
break; break;
case DSM_CMD_BIND_SEND_PULSES: case DSM_CMD_BIND_SEND_PULSES: {
// Pulse RX pin a number of times // Pulse RX pin a number of times
#if defined(DSM_DEBUG) #if defined(DSM_DEBUG)
printf("DSM: DSM_CMD_BIND_SEND_PULSES\n"); printf("DSM: DSM_CMD_BIND_SEND_PULSES\n");
#endif #endif
for (int i = 0; i < pulses; i++) { auto flags = px4_enter_critical_section();
dsm_udelay(120);
SPEKTRUM_OUT(false); for (int i = 0; i < DSM_BIND_PULSE::INTERNAL_DSMX_11MS; i++) {
dsm_udelay(120); dsm_udelay(120);
SPEKTRUM_OUT(true); SPEKTRUM_OUT(false);
dsm_udelay(120);
SPEKTRUM_OUT(true);
}
px4_leave_critical_section(flags);
} }
break; break;

View File

@ -63,6 +63,17 @@ typedef struct dsm_decode_t {
dsm_buf_t buf; dsm_buf_t buf;
} dsm_decode_t; } dsm_decode_t;
enum DSM_BIND_PULSE {
INTERNAL_DSM2_22MS = 3,
EXTERNAL_DSM2_22MS = 4,
INTERNAL_DSM2_11MS = 5,
EXTERNAL_DSM2_11MS = 6,
INTERNAL_DSMX_22MS = 7,
EXTERNAL_DSMX_22MS = 8,
INTERNAL_DSMX_11MS = 9,
EXTERNAL_DSMX_11MS = 10,
};
#pragma pack(pop) #pragma pack(pop)
__EXPORT int dsm_init(const char *device); __EXPORT int dsm_init(const char *device);