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

[sky9x] Issue 111 fixed

[stock] 120bytes saved with DBLKEYS option
This commit is contained in:
bsongis 2012-09-04 10:09:35 +00:00
parent fddbe300a1
commit bd2def4d4d
4 changed files with 38 additions and 9 deletions

View file

@ -78,4 +78,11 @@ extern uint8_t maxTemperature ; // Raw temp reading
#define strcpy_P strcpy
#define strcat_P strcat
extern uint32_t read_keys();
#define KEYS_PRESSED() (~read_keys())
#define DBLKEYS_PRESSED_RGT_LFT(i) (in & (0x20 + 0x40))
#define DBLKEYS_PRESSED_UP_DWN(i) (in & (0x10 + 0x08))
#define DBLKEYS_PRESSED_RGT_UP(i) (in & (0x20 + 0x10))
#define DBLKEYS_PRESSED_LFT_DWN(i) (in & (0x40 + 0x08))
#endif

View file

@ -74,22 +74,23 @@ int16_t checkIncDec(uint8_t event, int16_t val, int16_t i_min, int16_t i_max, ui
int16_t newval = val;
#if defined(DBLKEYS)
if (keyState(KEY_RIGHT) && keyState(KEY_LEFT)) {
uint8_t in = KEYS_PRESSED();
if (DBLKEYS_PRESSED_RGT_LFT(in)) {
newval = -val;
killEvents(KEY_LEFT);
killEvents(KEY_RIGHT);
}
else if (s_editMode && keyState(KEY_RIGHT) && keyState(KEY_UP)) {
else if (s_editMode && DBLKEYS_PRESSED_RGT_UP(in)) {
newval = (i_max > 100 ? 100 : i_max);
killEvents(KEY_RIGHT);
killEvents(KEY_UP);
}
else if (s_editMode && keyState(KEY_LEFT) && keyState(KEY_DOWN)) {
else if (s_editMode && DBLKEYS_PRESSED_LFT_DWN(in)) {
newval = (i_min < -100 ? -100 : i_min);
killEvents(KEY_LEFT);
killEvents(KEY_DOWN);
}
else if (s_editMode && keyState(KEY_UP) && keyState(KEY_DOWN)) {
else if (s_editMode && DBLKEYS_PRESSED_UP_DWN(in)) {
newval = 0;
killEvents(KEY_UP);
killEvents(KEY_DOWN);

View file

@ -244,7 +244,22 @@ extern uint8_t s_bind_allowed;
# define OUT_H_14DBUSY 6
#endif
#else // boards prior to v4 ...
inline uint8_t KEYS_PRESSED()
{
uint8_t tin = ~PINL;
uint8_t in;
in = (tin & 0x0f) << 3;
in |= (tin & 0x30) >> 3;
return in;
}
#define DBLKEYS_PRESSED_RGT_LFT(i) (in & ((1<<INP_P_KEY_RGT) + (1<<INP_P_KEY_LFT)))
#define DBLKEYS_PRESSED_UP_DWN(i) (in & ((1<<INP_P_KEY_UP) + (1<<INP_P_KEY_DWN)))
#define DBLKEYS_PRESSED_RGT_UP(i) (in & ((1<<INP_P_KEY_RGT) + (1<<INP_P_KEY_UP)))
#define DBLKEYS_PRESSED_LFT_DWN(i) (in & ((1<<INP_P_KEY_LFT) + (1<<INP_P_KEY_DWN)))
#elif defined(PCBSTD) // stock board ...
#define OUT_B_LIGHT 7
#define INP_B_KEY_LFT 6
@ -286,6 +301,12 @@ extern uint8_t s_bind_allowed;
#define INP_G_RF_POW 1
#define INP_G_RuddDR 0
#define KEYS_PRESSED() (~PINB)
#define DBLKEYS_PRESSED_RGT_LFT(i) (in & ((1<<INP_B_KEY_RGT) + (1<<INP_B_KEY_LFT)))
#define DBLKEYS_PRESSED_UP_DWN(i) (in & ((1<<INP_B_KEY_UP) + (1<<INP_B_KEY_DWN)))
#define DBLKEYS_PRESSED_RGT_UP(i) (in & ((1<<INP_B_KEY_RGT) + (1<<INP_B_KEY_UP)))
#define DBLKEYS_PRESSED_LFT_DWN(i) (in & ((1<<INP_B_KEY_LFT) + (1<<INP_B_KEY_DWN)))
#endif // defined (PCBV4)
#if defined(PCBARM)