1
0
Fork 0
mirror of https://github.com/opentx/opentx.git synced 2025-07-23 16:25:16 +03:00

Bug in trims (Tx modes)

Bug in telemetry display
Bug in timer2
This commit is contained in:
bsongis 2012-01-14 22:02:23 +00:00
parent b496e1fba8
commit 8bac9c2784
3 changed files with 11 additions and 22 deletions

View file

@ -56,7 +56,7 @@ bool warble = false;
uint8_t heartbeat; uint8_t heartbeat;
// TODO reduce this tab // TODO reduce these tabs
const prog_char APM modi12x3[]= const prog_char APM modi12x3[]=
"RUD ELE THR AIL " "RUD ELE THR AIL "
"RUD THR ELE AIL " "RUD THR ELE AIL "
@ -81,20 +81,6 @@ const prog_uint8_t APM modn12x3[]= {
4, 2, 3, 1, 4, 2, 3, 1,
4, 3, 2, 1 }; 4, 3, 2, 1 };
#ifdef TRANSLATIONS
int8_t char2idx(char c)
{
if (c==' ') return 0;
if (c>='A' && c<='Z') return 1+c-'A';
if (c>='a' && c<='z') return -1-c+'a';
if (c>='0' && c<='9') return 27+c-'0';
for (int8_t i=0;;i++) {
char cc = pgm_read_byte(s_charTab+i);
if(cc==c) return 37+i;
if(cc==0) return 0;
}
}
#endif
char idx2char(int8_t idx) char idx2char(int8_t idx)
{ {
@ -711,7 +697,7 @@ uint8_t checkTrim(uint8_t event)
if (k>=0 && k<8) { // && (event & _MSK_KEY_REPT)) if (k>=0 && k<8) { // && (event & _MSK_KEY_REPT))
//LH_DWN LH_UP LV_DWN LV_UP RV_DWN RV_UP RH_DWN RH_UP //LH_DWN LH_UP LV_DWN LV_UP RV_DWN RV_UP RH_DWN RH_UP
uint8_t idx = k/2; uint8_t idx = CONVERT_MODE(1+k/2) - 1;
uint8_t phase = getTrimFlightPhase(idx, getFlightPhase()); uint8_t phase = getTrimFlightPhase(idx, getFlightPhase());
int16_t before = getTrimValue(phase, idx); int16_t before = getTrimValue(phase, idx);
int8_t v = (s==0) ? min(32, abs(before)/4+1) : 1 << (s-1); // 1=>1 2=>2 3=>4 4=>8 int8_t v = (s==0) ? min(32, abs(before)/4+1) : 1 << (s-1); // 1=>1 2=>2 3=>4 4=>8
@ -984,7 +970,7 @@ FORCEINLINE void incTimers(int16_t val)
if ( (s_timerVal_10ms[i] += 1 ) >= 100 ) { if ( (s_timerVal_10ms[i] += 1 ) >= 100 ) {
s_timerVal_10ms[i] -= 100 ; s_timerVal_10ms[i] -= 100 ;
if (timer->val) s_timerVal[0] = timer->val - s_timerVal[0]; if (timer->val) s_timerVal[i] = timer->val - s_timerVal[i];
if (atm==TMRMODE_ABS) { if (atm==TMRMODE_ABS) {
s_timerVal[i]++; s_timerVal[i]++;
@ -1025,7 +1011,7 @@ FORCEINLINE void incTimers(int16_t val)
break; break;
} }
if (timer->val) s_timerVal[0] = timer->val - s_timerVal[0]; //if counting backwards - display backwards if (timer->val) s_timerVal[i] = timer->val - s_timerVal[i]; //if counting backwards - display backwards
} }
} }

View file

@ -497,10 +497,13 @@ void putsTmrMode(uint8_t x, uint8_t y, int8_t mode, uint8_t att)
// TODO move this into frsky.cpp // TODO move this into frsky.cpp
void putsTelemetryChannel(uint8_t x, uint8_t y, uint8_t channel, uint8_t val, uint8_t att) void putsTelemetryChannel(uint8_t x, uint8_t y, uint8_t channel, uint8_t val, uint8_t att)
{ {
int16_t converted_value = ((int16_t)val+g_model.frsky.channels[channel].offset)*g_model.frsky.channels[channel].ratio / 255; // TODO optimize this, avoid int32_t
if (g_model.frsky.channels[channel].type == 0 && converted_value < 100) { int16_t converted_value = ((int32_t)val+g_model.frsky.channels[channel].offset) * g_model.frsky.channels[channel].ratio * 2 / 51;
if (g_model.frsky.channels[channel].type == 0 && converted_value < 1000) {
att |= PREC2; att |= PREC2;
converted_value = ((int16_t)val+g_model.frsky.channels[channel].offset)*g_model.frsky.channels[channel].ratio*10 / 255; }
else {
converted_value /= 10;
} }
putsTelemetryValue(x, y, converted_value, g_model.frsky.channels[channel].type, att); putsTelemetryValue(x, y, converted_value, g_model.frsky.channels[channel].type, att);
} }

View file

@ -239,7 +239,7 @@ void menuMainView(uint8_t event)
static uint8_t x[4] = {128*1/4+2, 4, 128-4, 128*3/4-2}; static uint8_t x[4] = {128*1/4+2, 4, 128-4, 128*3/4-2};
static uint8_t vert[4] = {0,1,1,0}; static uint8_t vert[4] = {0,1,1,0};
uint8_t xm, ym; uint8_t xm, ym;
xm = x[i]; xm = x[CONVERT_MODE(i+1)-1];
uint8_t att = 0; uint8_t att = 0;
int16_t val = getTrimValue(getTrimFlightPhase(i, phase), i); int16_t val = getTrimValue(getTrimFlightPhase(i, phase), i);