1
0
Fork 0
mirror of https://github.com/opentx/opentx.git synced 2025-07-26 01:35:21 +03:00

Bug in differential / ersky9x

This commit is contained in:
bsongis 2012-08-16 15:23:20 +00:00
parent debbff51e0
commit 0faa35ab97
3 changed files with 18 additions and 12 deletions

View file

@ -1596,7 +1596,12 @@ void menuProcMixOne(uint8_t event)
TITLEP(s_currCh ? STR_INSERTMIX : STR_EDITMIX); TITLEP(s_currCh ? STR_INSERTMIX : STR_EDITMIX);
MixData *md2 = mixaddress(s_currIdx) ; MixData *md2 = mixaddress(s_currIdx) ;
putsChn(lcdLastPos+1*FW,0,md2->destCh+1,0); putsChn(lcdLastPos+1*FW,0,md2->destCh+1,0);
#if defined(PCBARM)
SUBMENU_NOTITLE(MIX_FIELD_COUNT, {sizeof(md2->name), 0, 0, 0, 1, 1, 0, MAX_PHASES-1, 0 /*, ...*/});
#else
SUBMENU_NOTITLE(MIX_FIELD_COUNT, {0, 0, 0, 1, 1, 0, MAX_PHASES-1, 0 /*, ...*/}); SUBMENU_NOTITLE(MIX_FIELD_COUNT, {0, 0, 0, 1, 1, 0, MAX_PHASES-1, 0 /*, ...*/});
#endif
int8_t sub = m_posVert; int8_t sub = m_posVert;
@ -1648,23 +1653,24 @@ void menuProcMixOne(uint8_t event)
if (attr) { if (attr) {
if (md2->curveMode==MODE_CURVE) { if (md2->curveMode==MODE_CURVE) {
CHECK_INCDEC_MODELVAR(event, md2->curveParam, -MAX_CURVES, CURVE_BASE+MAX_CURVES); if (event==EVT_KEY_FIRST(KEY_MENU) && (md2->curveParam<0 || md2->curveParam>=CURVE_BASE)){
if (md2->curveParam == CURVE_BASE+MAX_CURVES) {
md2->curveMode = MODE_DIFFERENTIAL;
md2->curveParam = 0;
}
if (event==EVT_KEY_FIRST(KEY_MENU) && md2->curveMode==MODE_CURVE && (md2->curveParam<0 || md2->curveParam>=CURVE_BASE)){
s_curveChan = (md2->curveParam<0 ? -md2->curveParam-1 : md2->curveParam-CURVE_BASE); s_curveChan = (md2->curveParam<0 ? -md2->curveParam-1 : md2->curveParam-CURVE_BASE);
pushMenu(menuProcCurveOne); pushMenu(menuProcCurveOne);
} }
CHECK_INCDEC_MODELVAR(event, md2->curveParam, -MAX_CURVES, CURVE_BASE+MAX_CURVES-1);
if (md2->curveParam == 0)
md2->curveMode = MODE_DIFFERENTIAL;
m_posHorz = 0; m_posHorz = 0;
if (s_editMode > 0) s_editMode = 0; if (s_editMode > 0) s_editMode = 0;
} }
else if (s_editMode>0) { else if (s_editMode>0) {
if (m_posHorz==0) { if (m_posHorz==0) {
CHECK_INCDEC_MODELVAR(event, md2->curveMode, -1, 1); int8_t tmp = 0;
if (md2->curveMode == MODE_CURVE) CHECK_INCDEC_MODELVAR(event, tmp, -1, 1);
md2->curveParam = CURVE_BASE+MAX_CURVES-1; if (tmp != 0) {
md2->curveMode = MODE_CURVE;
md2->curveParam = tmp;
}
} }
else { else {
CHECK_INCDEC_MODELVAR(event, md2->curveParam, -100, 100); CHECK_INCDEC_MODELVAR(event, md2->curveParam, -100, 100);

View file

@ -259,8 +259,8 @@ enum MixSources {
#define MLTPX_MUL 1 #define MLTPX_MUL 1
#define MLTPX_REP 2 #define MLTPX_REP 2
#define MODE_CURVE 0 #define MODE_DIFFERENTIAL 0
#define MODE_DIFFERENTIAL 1 #define MODE_CURVE 1
#if defined(PCBARM) #if defined(PCBARM)
#define MAX_DELAY 60 /* 30 seconds */ #define MAX_DELAY 60 /* 30 seconds */

View file

@ -1059,7 +1059,7 @@ void checkTHR()
{ {
if (g_model.disableThrottleWarning) return; if (g_model.disableThrottleWarning) return;
int thrchn = (2-(stickMode&1));//stickMode=0123 -> thr=2121 int8_t thrchn = (2-(stickMode&1)); //stickMode=0123 -> thr=2121
#ifdef SIMU #ifdef SIMU
int16_t lowLim = THRCHK_DEADBAND - 1024 ; int16_t lowLim = THRCHK_DEADBAND - 1024 ;