mirror of
https://github.com/opentx/opentx.git
synced 2025-07-23 16:25:16 +03:00
PPM Pulses small flash saving by Mike
This commit is contained in:
parent
8b11cbe549
commit
22bed6212b
2 changed files with 8 additions and 19 deletions
|
@ -154,22 +154,13 @@ void setupPulsesPPM() // Don't enable interrupts through here
|
|||
|
||||
uint16_t rest = 22500u * 2; //Minimum Framelen=22.5 ms
|
||||
rest += (int16_t(g_model.ppmFrameLength)) * 1000;
|
||||
// if(p>9) rest=p*(1720u*2 + q) + 4000u*2; //for more than 9 channels, frame must be longer
|
||||
for (uint32_t i = 0; i < p; i++) { //NUM_CHNOUT
|
||||
int16_t v = max((int) min(g_chans512[i], PPM_range),
|
||||
-PPM_range) + PPM_CENTER;
|
||||
int16_t v = limit((int16_t)-PPM_range, g_chans512[i], (int16_t)PPM_range) + PPM_CENTER;
|
||||
rest -= (v);
|
||||
// *ptr++ = q; //moved down two lines
|
||||
// pulses2MHz[j++] = q;
|
||||
*ptr++ = v; /* as Pat MacKenzie suggests */
|
||||
// pulses2MHz[j++] = v - q + 600; /* as Pat MacKenzie suggests */
|
||||
// *ptr++ = q; //to here
|
||||
}
|
||||
// *ptr=q; //reverse these two assignments
|
||||
// *(ptr+1)=rest;
|
||||
*ptr = rest;
|
||||
*(ptr + 1) = 0;
|
||||
|
||||
}
|
||||
|
||||
void put_serial_bit( uint8_t bit )
|
||||
|
|
|
@ -195,7 +195,7 @@ ISR(TIMER1_COMPA_vect) //2MHz pulse generation
|
|||
|
||||
FORCEINLINE void setupPulsesPPM()
|
||||
{
|
||||
#define PPM_CENTER 1200*2
|
||||
#define PPM_CENTER 1500*2
|
||||
int16_t PPM_range = g_model.extendedLimits ? 640*2 : 512*2; //range of 0.7..1.7msec
|
||||
|
||||
//Total frame length = 22.5msec
|
||||
|
@ -212,10 +212,8 @@ FORCEINLINE void setupPulsesPPM()
|
|||
rest += (int16_t(g_model.ppmFrameLength))*1000;
|
||||
for (uint8_t i=0; i<p; i++) {
|
||||
int16_t v = limit((int16_t)-PPM_range, g_chans512[i], (int16_t)PPM_range) + PPM_CENTER;
|
||||
*ptr = v - q + 600; /* as Pat MacKenzie suggests */
|
||||
/* reviewed and modified by Cam */
|
||||
rest -= (*ptr + q);
|
||||
ptr++;
|
||||
rest -= v;
|
||||
*ptr++ = v - q; /* as Pat MacKenzie suggests, reviewed and modified by Cam */
|
||||
*ptr++ = q;
|
||||
}
|
||||
*ptr = rest;
|
||||
|
@ -821,9 +819,9 @@ void setupPulsesPPM16()
|
|||
rest += (int16_t(g_model.ppmFrameLength))*1000;
|
||||
for (uint8_t i=p-8; i<p; i++) { //NUM_CHNOUT
|
||||
int16_t v = limit((int16_t)-PPM_range, g_chans512[i], (int16_t)PPM_range) + PPM_CENTER;
|
||||
rest -= (v+q);
|
||||
rest -= v;
|
||||
*ptr++ = q;
|
||||
*ptr++ = v - q + 600; /* as Pat MacKenzie suggests */
|
||||
*ptr++ = v - q; /* as Pat MacKenzie suggests, reviewed and modified by Cam */
|
||||
}
|
||||
*ptr = q; //reverse these two assignments
|
||||
*(ptr+1) = rest;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue