[gruvin9x / M128] The flight phase 5 was not useable in Expos / Mixes. New EEPROM conversion for these targets, sorry!

This commit is contained in:
bsongis@gmail.com
2013-03-22 07:11:39 +00:00
parent aca37b43f3
commit 86b5e0de04
2 changed files with 51 additions and 14 deletions
+11 -9
View File
@@ -776,12 +776,10 @@ int16_t gvarMenuItem(uint8_t x, uint8_t y, int16_t value, int16_t min, int16_t m
bool invers = (attr & INVERS);
if (invers && event == EVT_KEY_LONG(KEY_ENTER)) {
s_editMode = !s_editMode;
value = ( GV_IS_GV_VALUE(value,min,max) ? GET_GVAR(value, min, max, s_perout_flight_phase) : delta);
value = (GV_IS_GV_VALUE(value,min,max) ? GET_GVAR(value, min, max, s_perout_flight_phase) : delta);
eeDirty(EE_MODEL);
}
if ( GV_IS_GV_VALUE(value,min,max) ) {
if (GV_IS_GV_VALUE(value,min,max) ) {
if (attr & LEFT)
attr -= LEFT; /* because of ZCHAR */
else
@@ -799,16 +797,20 @@ int16_t gvarMenuItem(uint8_t x, uint8_t y, int16_t value, int16_t min, int16_t m
idx++; */
if (idx < 0) {
value=(int16_t) GV_CALC_VALUE_IDX_NEG(idx,delta); idx=-idx; lcd_putcAtt(x-6, y, '-', attr);
} else {
value = (int16_t) GV_CALC_VALUE_IDX_POS(idx,delta); idx++;
value = (int16_t) GV_CALC_VALUE_IDX_NEG(idx,delta);
idx = -idx;
lcd_putcAtt(x-6, y, '-', attr);
}
else {
value = (int16_t) GV_CALC_VALUE_IDX_POS(idx,delta);
idx++;
}
putsStrIdx(x, y, STR_GV, idx, attr);
}
else {
lcd_outdezAtt(x, y, value, attr);
if (invers) value = checkIncDec(event, value, min, max,EE_MODEL);
if (invers) value = checkIncDec(event, value, min, max, EE_MODEL);
}
return value;
}
@@ -817,7 +819,7 @@ int16_t gvarMenuItem(uint8_t x, uint8_t y, int16_t value, int16_t min, int16_t m
int8_t gvarMenuItem(uint8_t x, uint8_t y, int8_t value, int16_t min, int16_t max, LcdFlags attr, uint8_t event)
{
lcd_outdezAtt(x, y, value, attr);
if (attr&INVERS) value = checkIncDec(event, value, min, max,EE_MODEL);
if (attr&INVERS) value = checkIncDec(event, value, min, max, EE_MODEL);
return value;
}
#endif
+40 -5
View File
@@ -55,8 +55,8 @@
#define EEPROM_VER 214
#elif defined(PCBSKY9X)
#define EEPROM_VER 214
#elif defined(PCBGRUVIN9X)
#define EEPROM_VER 213
#elif defined(PCBGRUVIN9X) || defined(CPUM128)
#define EEPROM_VER 214
#else
#define EEPROM_VER 213
#endif
@@ -255,14 +255,25 @@ PACK(typedef struct t_ExpoData {
char name[LEN_EXPOMIX_NAME];
int8_t curveParam;
}) ExpoData;
#else
#elif defined(CPUM64)
PACK(typedef struct t_ExpoData {
uint8_t mode:2; // 0=end, 1=pos, 2=neg, 3=both
int8_t swtch:6;
uint8_t chn:2;
uint8_t phases:5;
uint8_t curveMode:1;
uint8_t weight; // we have one bit spare here :)
uint8_t weight; // One spare bit here (used for GVARS)
int8_t curveParam;
}) ExpoData;
#else
PACK(typedef struct t_ExpoData {
uint8_t mode:2; // 0=end, 1=pos, 2=neg, 3=both
uint8_t chn:2;
uint8_t curveMode:1;
uint8_t spare:3;
uint8_t phases;
int8_t swtch;
uint8_t weight;
int8_t curveParam;
}) ExpoData;
#endif
@@ -345,6 +356,8 @@ PACK( union u_int8int16_t {
#define SLOW_STEP 2
#define DELAY_MAX 15 /* 7.5 seconds */
#define SLOW_MAX 15 /* 7.5 seconds */
#if defined(CPUM64)
PACK(typedef struct t_MixData {
uint8_t destCh:4; // 0, 1..NUM_CHNOUT
uint8_t curveMode:1; // O=curve, 1=differential
@@ -365,7 +378,29 @@ PACK(typedef struct t_MixData {
int8_t curveParam;
int8_t offset;
}) MixData;
#else
PACK(typedef struct t_MixData {
uint8_t destCh:4; // 0, 1..NUM_CHNOUT
uint8_t curveMode:1; // O=curve, 1=differential
uint8_t noExpo:1;
uint8_t weightMode:1;
uint8_t offsetMode:1;
uint8_t srcRaw;
int8_t weight;
int8_t swtch;
uint8_t phases;
uint8_t mltpx:2; // multiplex method: 0 means +=, 1 means *=, 2 means :=
int8_t carryTrim:3;
uint8_t mixWarn:2; // mixer warning
uint8_t spare:1;
uint8_t delayUp:4;
uint8_t delayDown:4;
uint8_t speedUp:4;
uint8_t speedDown:4;
int8_t curveParam;
int8_t offset;
}) MixData;
#endif
PACK( union u_gvarint_t {
struct {
int8_t lo;