[Crossfire] Min / max limits were missing for each channel transmitted
This commit is contained in:
@@ -34,7 +34,8 @@ void createCrossfireFrame(uint8_t * frame, int16_t * pulses)
|
||||
uint32_t bits = 0;
|
||||
uint8_t bitsavailable = 0;
|
||||
for (int i=0; i<CROSSFIRE_CHANNELS_COUNT; i++) {
|
||||
bits |= (CROSSFIRE_CH_CENTER + (((pulses[i]) * 4) / 5)) << bitsavailable;
|
||||
uint32_t val = limit(0, CROSSFIRE_CH_CENTER + (((pulses[i]) * 4) / 5), 2*CROSSFIRE_CH_CENTER);
|
||||
bits |= val << bitsavailable;
|
||||
bitsavailable += CROSSFIRE_CH_BITS;
|
||||
while (bitsavailable >= 8) {
|
||||
*buf++ = bits;
|
||||
|
||||
Reference in New Issue
Block a user