From 22bed6212b6a5268f287ad642cf8813ba68ceb50 Mon Sep 17 00:00:00 2001 From: bsongis Date: Thu, 12 Apr 2012 22:23:55 +0000 Subject: [PATCH] PPM Pulses small flash saving by Mike --- src/pulses_arm.cpp | 11 +---------- src/pulses_avr.cpp | 16 +++++++--------- 2 files changed, 8 insertions(+), 19 deletions(-) diff --git a/src/pulses_arm.cpp b/src/pulses_arm.cpp index d0b612b08..6141471bd 100644 --- a/src/pulses_arm.cpp +++ b/src/pulses_arm.cpp @@ -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 ) diff --git a/src/pulses_avr.cpp b/src/pulses_avr.cpp index 084cc293a..cdf1c6f45 100644 --- a/src/pulses_avr.cpp +++ b/src/pulses_avr.cpp @@ -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