PPM frame should now go up to 42ms
This commit is contained in:
+1
-1
@@ -769,7 +769,7 @@ void menuProcModel(uint8_t event)
|
||||
if(attr && (s_editMode>0 || p1valdiff)) {
|
||||
switch (m_posHorz) {
|
||||
case 0:
|
||||
CHECK_INCDEC_MODELVAR(event, g_model.ppmFrameLength, -20, 20);
|
||||
CHECK_INCDEC_MODELVAR(event, g_model.ppmFrameLength, -20, 39);
|
||||
break;
|
||||
case 1:
|
||||
CHECK_INCDEC_MODELVAR(event, g_model.ppmDelay, -4, 10);
|
||||
|
||||
+2
-2
@@ -159,8 +159,8 @@ void setupPulsesPPM() // Don't enable interrupts through here
|
||||
else
|
||||
pwmptr->PWM_CH_NUM[3].PWM_CMR &= ~0x00000200 ; // CPOL
|
||||
|
||||
uint16_t rest = 22500u * 2; //Minimum Framelen=22.5 ms
|
||||
rest += (int16_t(g_model.ppmFrameLength)) * 1000;
|
||||
uint32_t rest = 22500u * 2; //Minimum Framelen=22.5 ms
|
||||
rest += (int32_t(g_model.ppmFrameLength)) * 1000;
|
||||
for (uint32_t i = 0; i < p; i++) { //NUM_CHNOUT
|
||||
int16_t v = limit((int16_t)-PPM_range, g_chans512[i], (int16_t)PPM_range) + 2*PPM_CENTER;
|
||||
rest -= (v);
|
||||
|
||||
+4
-4
@@ -206,8 +206,8 @@ FORCEINLINE void setupPulsesPPM()
|
||||
uint16_t *ptr = (uint16_t *)pulses2MHz;
|
||||
uint8_t p = 8+(g_model.ppmNCH*2); // channels count
|
||||
uint16_t q = (g_model.ppmDelay*50+300)*2; //Stoplen *2
|
||||
uint16_t rest = 22500u*2-q; //Minimum Framelen=22.5 ms
|
||||
rest += (int16_t(g_model.ppmFrameLength))*1000;
|
||||
uint32_t rest = 22500u*2-q; // Minimum Framelen=22.5 ms + 10000 to avoid int32_t in the next line
|
||||
rest += (int32_t(g_model.ppmFrameLength))*1000;
|
||||
for (uint8_t i=0; i<p; i++) {
|
||||
#ifdef PPM_CENTER_ADJUSTABLE
|
||||
int16_t v = limit((int16_t)-PPM_range, g_chans512[i], (int16_t)PPM_range) + 2*(PPM_CENTER+g_model.servoCenter[i]);
|
||||
@@ -1032,8 +1032,8 @@ void setupPulsesPPM16(uint8_t proto)
|
||||
ptr = (uint16_t *) &pulses2MHz[PULSES_SIZE/2] ;
|
||||
uint8_t p= ( ( proto == PROTO_PPM16) ? 16 : 8 ) +g_model.ppmNCH*2 ; //Channels *2
|
||||
uint16_t q=(g_model.ppmDelay*50+300)*2; //Stoplen *2
|
||||
uint16_t rest=22500u*2-q; //Minimum Framelen=22.5 ms
|
||||
rest += (int16_t(g_model.ppmFrameLength))*1000;
|
||||
uint32_t rest=22500u*2-q; //Minimum Framelen=22.5 ms
|
||||
rest += (int32_t(g_model.ppmFrameLength))*1000;
|
||||
for (uint8_t i=(proto==PROTO_PPM16) ? p-8 : 0; i<p; i++) {
|
||||
#ifdef PPM_CENTER_ADJUSTABLE
|
||||
int16_t v = limit((int16_t)-PPM_range, g_chans512[i], (int16_t)PPM_range) + 2*(PPM_CENTER+g_model.servoCenter[i]);
|
||||
|
||||
Reference in New Issue
Block a user