[stock] Rotary encoder support
This commit is contained in:
+32
-15
@@ -50,8 +50,9 @@ DELAY = 5
|
||||
#----------- BUILD OPTIONS ---------------------------
|
||||
|
||||
# PCB version
|
||||
# Values: STD, STD128, GRUVIN9X, SKY9X, X9D, ACT
|
||||
PCB = STD
|
||||
# Values: 9X, 9X128, 9XR, 9XR128, GRUVIN9X, SKY9X, X9D, ACT
|
||||
# Old values STD and STD128 are mapped to 9X and 9X128 for compatibility
|
||||
PCB = 9X
|
||||
|
||||
# PCB revision
|
||||
# Values: REVA, REVB
|
||||
@@ -77,6 +78,7 @@ TEMPLATES = YES
|
||||
# POT2 (menus scroll),
|
||||
# POT3 (cursor down/up),
|
||||
# POTS (POT1, POT2, POT3),
|
||||
# ROTENC (Rotary encoder)
|
||||
NAVIGATION = NO
|
||||
|
||||
# Switches automatic selection
|
||||
@@ -219,7 +221,7 @@ SVNREV = $(shell sh -c "svnversion | egrep -o '[[:digit:]]+[[:alpha:]]*$$'")
|
||||
CPPDEFS =
|
||||
|
||||
# MCU name
|
||||
ifeq ($(PCB), STD)
|
||||
ifeq ($(PCB), $(filter $(PCB), STD 9X 9XR))
|
||||
ARCH = AVR
|
||||
TRGT = avr-
|
||||
MCU = atmega64
|
||||
@@ -228,7 +230,7 @@ ifeq ($(PCB), STD)
|
||||
SDCARD = NO
|
||||
endif
|
||||
|
||||
ifeq ($(PCB), STD128)
|
||||
ifeq ($(PCB), $(filter $(PCB), STD128 9X128 9XR128))
|
||||
ARCH = AVR
|
||||
TRGT = avr-
|
||||
MCU = atmega128
|
||||
@@ -336,9 +338,6 @@ DBGFMT = dwarf-2
|
||||
# For a directory that has spaces, enclose it in quotes.
|
||||
EXTRAINCDIRS = . translations
|
||||
|
||||
# NOTE: PCB version now overrides all the earlier individual settings
|
||||
# These individual settings work only for PCB=STD
|
||||
|
||||
CPPDEFS += -DTRANSLATIONS_$(TRANSLATIONS)
|
||||
|
||||
# TTS language
|
||||
@@ -366,13 +365,20 @@ endif
|
||||
ifeq ($(NAVIGATION), POTS)
|
||||
CPPDEFS += -DNAVIGATION_POT1 -DNAVIGATION_POT2 -DNAVIGATION_POT3
|
||||
endif
|
||||
ifeq ($(NAVIGATION), ROTENC)
|
||||
CPPDEFS += -DROTARY_ENCODER_NAVIGATION
|
||||
endif
|
||||
|
||||
ifeq ($(AUTOSWITCH), YES)
|
||||
CPPDEFS += -DAUTOSWITCH
|
||||
endif
|
||||
|
||||
ifeq ($(DBLKEYS), YES)
|
||||
CPPDEFS += -DDBLKEYS
|
||||
ifeq ($(PCB), $(filter $(PCB), 9XR 9XR128))
|
||||
$(warning Sorry, DBLKEYS doesnt work on 9XR)
|
||||
else
|
||||
CPPDEFS += -DDBLKEYS
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(SPLASH), YES)
|
||||
@@ -601,7 +607,7 @@ ifeq ($(PCB), GRUVIN9X)
|
||||
CPPDEFS += -DROTARY_ENCODERS=${ROTARY_ENCODERS}
|
||||
endif
|
||||
|
||||
ifeq ($(PCB), STD128)
|
||||
ifeq ($(PCB), $(filter $(PCB), STD128 9X128 9XR128))
|
||||
# 9x radio with Atmega 64 replace by Atmega 128
|
||||
OPT = 2
|
||||
CPPDEFS += -DPCBSTD -DCPUM128 -DEEPROM_VARIANT=0x8000
|
||||
@@ -610,6 +616,12 @@ ifeq ($(PCB), STD128)
|
||||
EXTRABOARDSRC += stock/lcd_driver.cpp
|
||||
EEPROMSRC = eeprom_avr.cpp
|
||||
PULSESSRC = pulses_avr.cpp
|
||||
|
||||
ifeq ($(PCB), 9XR128)
|
||||
CPPDEFS += -DPCB9XR128
|
||||
else
|
||||
CPPDEFS += -DPCB9X128
|
||||
endif
|
||||
|
||||
ifeq ($(AUDIO), YES)
|
||||
CPPDEFS += -DAUDIO
|
||||
@@ -625,7 +637,7 @@ ifeq ($(PCB), STD128)
|
||||
|
||||
ifeq ($(PWM_BACKLIGHT), YES)
|
||||
ifeq ($(VOICE), YES)
|
||||
$(error Sorry, PWM_BACKLIGHT doesnt work on stock board with VOICE mod.)
|
||||
$(error Sorry, PWM_BACKLIGHT doesnt work on stock board with VOICE mod)
|
||||
else
|
||||
CPPDEFS += -DPWM_BACKLIGHT
|
||||
endif
|
||||
@@ -641,7 +653,7 @@ ifeq ($(PCB), STD128)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(PCB), STD)
|
||||
ifeq ($(PCB), $(filter $(PCB), STD 9X 9XR))
|
||||
# 9x radio
|
||||
OPT = s
|
||||
EXTRAINCDIRS += stock
|
||||
@@ -651,6 +663,12 @@ ifeq ($(PCB), STD)
|
||||
EEPROMSRC = eeprom_avr.cpp
|
||||
PULSESSRC = pulses_avr.cpp
|
||||
|
||||
ifeq ($(PCB), 9XR)
|
||||
CPPDEFS += -DPCB9XR
|
||||
else
|
||||
CPPDEFS += -DPCB9X
|
||||
endif
|
||||
|
||||
ifeq ($(AUDIO), YES)
|
||||
CPPDEFS += -DAUDIO
|
||||
CPPSRC += audio_avr.cpp
|
||||
@@ -665,7 +683,7 @@ ifeq ($(PCB), STD)
|
||||
|
||||
ifeq ($(PWM_BACKLIGHT), YES)
|
||||
ifeq ($(VOICE), YES)
|
||||
$(error Sorry, PWM_BACKLIGHT doesnt work on stock board with VOICE mod.)
|
||||
$(error Sorry, PWM_BACKLIGHT doesnt work on stock board with VOICE mod)
|
||||
else
|
||||
CPPDEFS += -DPWM_BACKLIGHT
|
||||
endif
|
||||
@@ -687,7 +705,6 @@ ifeq ($(PPM_CENTER_ADJUSTABLE), YES)
|
||||
CPPDEFS += -DPPM_CENTER_ADJUSTABLE
|
||||
endif
|
||||
|
||||
|
||||
ifeq ($(PPM_LIMITS_SYMETRICAL), YES)
|
||||
CPPDEFS += -DPPM_LIMITS_SYMETRICAL
|
||||
endif
|
||||
@@ -922,10 +939,10 @@ splash_9x.lbm: splash_9x.xbm
|
||||
@echo "Convert 9x splash from xbm to lbm:"
|
||||
$(IMG2LBM) $< $@ img
|
||||
|
||||
splash_X9D.lbm: splash_X9D.xbm
|
||||
splash_X9D.lbm: splash_X9D.bmp
|
||||
@echo
|
||||
@echo "Convert X9D splash from xbm to lbm:"
|
||||
$(IMG2LBM) $< $@ img
|
||||
$(IMG2LBM) $< $@ bmp
|
||||
|
||||
splash_ACT.lbm: splash_ACT.xbm
|
||||
@echo
|
||||
|
||||
@@ -539,9 +539,8 @@ void menuGeneralSdManager(uint8_t event)
|
||||
reusableBuffer.sd.offset = 65535;
|
||||
break;
|
||||
#if defined(ROTARY_ENCODERS)
|
||||
case EVT_KEY_FIRST(BTN_REa):
|
||||
case EVT_KEY_FIRST(BTN_REb):
|
||||
if (!navigationRotaryEncoder(event))
|
||||
case EVT_KEY_FIRST_ROTARY_ENCODERS:
|
||||
if (!IS_RE_NAVIGATION_EVT(event))
|
||||
break;
|
||||
// no break
|
||||
#endif
|
||||
@@ -560,9 +559,8 @@ void menuGeneralSdManager(uint8_t event)
|
||||
break;
|
||||
}
|
||||
#if defined(ROTARY_ENCODERS)
|
||||
case EVT_KEY_LONG(BTN_REa):
|
||||
case EVT_KEY_LONG(BTN_REb):
|
||||
if (!navigationRotaryEncoder(event))
|
||||
case EVT_KEY_LONG_ROTARY_ENCODERS:
|
||||
if (!IS_RE_NAVIGATION_EVT(event))
|
||||
break;
|
||||
// no break
|
||||
#endif
|
||||
|
||||
@@ -328,11 +328,24 @@ void menuMainView(uint8_t event)
|
||||
break;
|
||||
#endif
|
||||
|
||||
#if defined(ROTARY_ENCODER_NAVIGATION)
|
||||
case EVT_KEY_BREAK_ROTARY_ENCODERS:
|
||||
if (!IS_RE_NAVIGATION_EVT(event))
|
||||
break;
|
||||
// no break;
|
||||
#endif
|
||||
case EVT_KEY_MODEL_MENU:
|
||||
pushMenu(menuModelSelect);
|
||||
killEvents(event);
|
||||
break;
|
||||
|
||||
#if defined(ROTARY_ENCODER_NAVIGATION)
|
||||
case EVT_KEY_LONG_ROTARY_ENCODERS:
|
||||
if (!IS_RE_NAVIGATION_EVT(event))
|
||||
break;
|
||||
killEvents(event);
|
||||
// no break;
|
||||
#endif
|
||||
case EVT_KEY_GENERAL_MENU:
|
||||
pushMenu(menuGeneralSetup);
|
||||
killEvents(event);
|
||||
|
||||
+12
-3
@@ -518,10 +518,20 @@ bool check(check_event_t event, uint8_t curr, const MenuFuncP *menuTab, uint8_t
|
||||
if (!menuTab || l_posVert>0)
|
||||
s_editMode = (s_editMode<=0);
|
||||
break;
|
||||
|
||||
#if defined(ROTARY_ENCODER_NAVIGATION)
|
||||
case EVT_KEY_LONG_ROTARY_ENCODERS:
|
||||
if (l_posVert!=0 || !IS_RE_NAVIGATION_EVT(event))
|
||||
break;
|
||||
killEvents(event);
|
||||
// no break
|
||||
#endif
|
||||
|
||||
case EVT_KEY_LONG(KEY_EXIT):
|
||||
s_editMode = 0;
|
||||
popMenu();
|
||||
break;
|
||||
|
||||
case EVT_KEY_BREAK(KEY_EXIT):
|
||||
#if defined(ROTARY_ENCODER_NAVIGATION)
|
||||
if (s_editMode==0)
|
||||
@@ -673,9 +683,8 @@ void displayWarning(uint8_t event)
|
||||
lcd_puts(16, 5*FH, s_warning_type == WARNING_TYPE_CONFIRM ? STR_POPUPS : STR_EXIT);
|
||||
switch(event) {
|
||||
#if defined(ROTARY_ENCODERS)
|
||||
case EVT_KEY_BREAK(BTN_REa):
|
||||
case EVT_KEY_BREAK(BTN_REb):
|
||||
if (!navigationRotaryEncoder(event))
|
||||
case EVT_KEY_BREAK_ROTARY_ENCODERS:
|
||||
if (!IS_RE_NAVIGATION_EVT(event))
|
||||
break;
|
||||
// no break
|
||||
#endif
|
||||
|
||||
+15
@@ -122,11 +122,26 @@ void menuStatisticsDebug(uint8_t event);
|
||||
#define IS_RE_NAVIGATION_ENABLE() g_eeGeneral.reNavigation
|
||||
#define IS_RE_NAVIGATION_EVT_TYPE(event, type) (g_eeGeneral.reNavigation && event==type(BTN_REa + g_eeGeneral.reNavigation - 1))
|
||||
#define IS_RE_NAVIGATION_EVT(event) (g_eeGeneral.reNavigation && EVT_KEY_MASK(event)==(BTN_REa + g_eeGeneral.reNavigation - 1))
|
||||
#elif defined(ROTARY_ENCODER_NAVIGATION)
|
||||
#define IS_RE_NAVIGATION_ENABLE() true
|
||||
#define NAVIGATION_RE_IDX() 0
|
||||
#define IS_RE_NAVIGATION_EVT_TYPE(event, type) (event==type(BTN_REa))
|
||||
#define IS_RE_NAVIGATION_EVT(event) (EVT_KEY_MASK(event)==BTN_REa)
|
||||
#else
|
||||
#define IS_RE_NAVIGATION_EVT_TYPE(event, type) (0)
|
||||
#define IS_RE_NAVIGATION_EVT(event) (0)
|
||||
#endif
|
||||
|
||||
#if ROTARY_ENCODERS > 1
|
||||
#define EVT_KEY_FIRST_ROTARY_ENCODERS EVT_KEY_FIRST(BTN_REa): case EVT_KEY_FIRST(BTN_REb)
|
||||
#define EVT_KEY_BREAK_ROTARY_ENCODERS EVT_KEY_BREAK(BTN_REa): case EVT_KEY_BREAK(BTN_REb)
|
||||
#define EVT_KEY_LONG_ROTARY_ENCODERS EVT_KEY_LONG(BTN_REa): case EVT_KEY_LONG(BTN_REb)
|
||||
#else
|
||||
#define EVT_KEY_FIRST_ROTARY_ENCODERS EVT_KEY_FIRST(BTN_REa)
|
||||
#define EVT_KEY_BREAK_ROTARY_ENCODERS EVT_KEY_BREAK(BTN_REa)
|
||||
#define EVT_KEY_LONG_ROTARY_ENCODERS EVT_KEY_LONG(BTN_REa)
|
||||
#endif
|
||||
|
||||
extern int8_t checkIncDec_Ret; // global helper vars
|
||||
|
||||
#define EDIT_SELECT_MENU -1
|
||||
|
||||
+19
-28
@@ -297,15 +297,13 @@ void menuModelSelect(uint8_t event)
|
||||
s_copyMode = 0;
|
||||
}
|
||||
break;
|
||||
#if defined(ROTARY_ENCODERS)
|
||||
case EVT_KEY_BREAK(BTN_REa):
|
||||
case EVT_KEY_BREAK(BTN_REb):
|
||||
if (navigationRotaryEncoder(event))
|
||||
#if defined(ROTARY_ENCODER_NAVIGATION)
|
||||
case EVT_KEY_BREAK_ROTARY_ENCODERS:
|
||||
if (IS_RE_NAVIGATION_EVT(event))
|
||||
s_editMode = (s_editMode == 0 && sub == g_eeGeneral.currModel) ? -1 : 0;
|
||||
break;
|
||||
case EVT_KEY_LONG(BTN_REa):
|
||||
case EVT_KEY_LONG(BTN_REb):
|
||||
if (!navigationRotaryEncoder(event))
|
||||
case EVT_KEY_LONG_ROTARY_ENCODERS:
|
||||
if (!IS_RE_NAVIGATION_EVT(event))
|
||||
break;
|
||||
// no break
|
||||
#endif
|
||||
@@ -575,9 +573,8 @@ void editName(uint8_t x, uint8_t y, char *name, uint8_t size, uint8_t event, uin
|
||||
#if defined(PCBX9D) || defined(PCBACT)
|
||||
case EVT_KEY_BREAK(KEY_ENTER):
|
||||
#else
|
||||
case EVT_KEY_BREAK(BTN_REa):
|
||||
case EVT_KEY_BREAK(BTN_REb):
|
||||
if (!navigationRotaryEncoder(event))
|
||||
case EVT_KEY_BREAK_ROTARY_ENCODERS:
|
||||
if (!IS_RE_NAVIGATION_EVT(event))
|
||||
break;
|
||||
#endif
|
||||
if (s_editMode == EDIT_MODIFY_FIELD) {
|
||||
@@ -599,9 +596,8 @@ void editName(uint8_t x, uint8_t y, char *name, uint8_t size, uint8_t event, uin
|
||||
|
||||
#if defined(ROTARY_ENCODER_NAVIGATION) || defined(PCBX9D)
|
||||
#if defined(ROTARY_ENCODERS)
|
||||
case EVT_KEY_LONG(BTN_REa):
|
||||
case EVT_KEY_LONG(BTN_REb):
|
||||
if (!navigationRotaryEncoder(event))
|
||||
case EVT_KEY_LONG_ROTARY_ENCODERS:
|
||||
if (!IS_RE_NAVIGATION_EVT(event))
|
||||
break;
|
||||
// no break
|
||||
#endif
|
||||
@@ -1271,9 +1267,8 @@ void menuModelPhasesAll(uint8_t event)
|
||||
|
||||
switch (event) {
|
||||
#if defined(ROTARY_ENCODERS)
|
||||
case EVT_KEY_BREAK(BTN_REa):
|
||||
case EVT_KEY_BREAK(BTN_REb):
|
||||
if (!navigationRotaryEncoder(event))
|
||||
case EVT_KEY_BREAK_ROTARY_ENCODERS:
|
||||
if (!IS_RE_NAVIGATION_EVT(event))
|
||||
break;
|
||||
// no break
|
||||
#endif
|
||||
@@ -1499,9 +1494,8 @@ void menuModelCurveOne(uint8_t event)
|
||||
s_editMode = 1;
|
||||
break;
|
||||
#if defined(ROTARY_ENCODERS)
|
||||
case EVT_KEY_BREAK(BTN_REa):
|
||||
case EVT_KEY_BREAK(BTN_REb):
|
||||
if (!navigationRotaryEncoder(event))
|
||||
case EVT_KEY_BREAK_ROTARY_ENCODERS:
|
||||
if (!IS_RE_NAVIGATION_EVT(event))
|
||||
break;
|
||||
// no break
|
||||
#endif
|
||||
@@ -2203,9 +2197,8 @@ void menuModelExpoMix(uint8_t expo, uint8_t event)
|
||||
}
|
||||
// no break
|
||||
#if defined(ROTARY_ENCODERS)
|
||||
case EVT_KEY_BREAK(BTN_REa):
|
||||
case EVT_KEY_BREAK(BTN_REb):
|
||||
if (event!=EVT_KEY_BREAK(KEY_ENTER) && !navigationRotaryEncoder(event))
|
||||
case EVT_KEY_BREAK_ROTARY_ENCODERS:
|
||||
if (event!=EVT_KEY_BREAK(KEY_ENTER) && !IS_RE_NAVIGATION_EVT(event))
|
||||
break;
|
||||
// no break
|
||||
#endif
|
||||
@@ -2669,9 +2662,8 @@ void menuModelCurvesAll(uint8_t event)
|
||||
|
||||
switch (event) {
|
||||
#if defined(ROTARY_ENCODERS)
|
||||
case EVT_KEY_BREAK(BTN_REa):
|
||||
case EVT_KEY_BREAK(BTN_REb):
|
||||
if (!navigationRotaryEncoder(event))
|
||||
case EVT_KEY_BREAK_ROTARY_ENCODERS:
|
||||
if (!IS_RE_NAVIGATION_EVT(event))
|
||||
break;
|
||||
// no break
|
||||
#endif
|
||||
@@ -2893,9 +2885,8 @@ void menuModelCustomSwitches(uint8_t event)
|
||||
|
||||
switch (event) {
|
||||
#if defined(ROTARY_ENCODERS)
|
||||
case EVT_KEY_BREAK(BTN_REa):
|
||||
case EVT_KEY_BREAK(BTN_REb):
|
||||
if (!navigationRotaryEncoder(event))
|
||||
case EVT_KEY_BREAK_ROTARY_ENCODERS:
|
||||
if (!IS_RE_NAVIGATION_EVT(event))
|
||||
break;
|
||||
// no break
|
||||
#endif
|
||||
|
||||
+7
-3
@@ -3335,10 +3335,10 @@ void saveTimers()
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(PCBACT)
|
||||
volatile rotenc_t g_rotenc[1] = {0};
|
||||
#elif defined(ROTARY_ENCODERS)
|
||||
#if defined(ROTARY_ENCODERS)
|
||||
volatile rotenc_t g_rotenc[ROTARY_ENCODERS] = {0};
|
||||
#elif defined(ROTARY_ENCODER_NAVIGATION)
|
||||
volatile rotenc_t g_rotenc[1] = {0};
|
||||
#endif
|
||||
|
||||
#ifndef SIMU
|
||||
@@ -3720,6 +3720,10 @@ int main(void)
|
||||
break;
|
||||
#endif
|
||||
|
||||
#if defined(PCBSTD) && defined(ROTARY_ENCODER_NAVIGATION)
|
||||
rotencPoll();
|
||||
#endif
|
||||
|
||||
perMain();
|
||||
|
||||
if (heartbeat == HEART_TIMER_PULSES+HEART_TIMER10ms) {
|
||||
|
||||
+3
-7
@@ -736,10 +736,6 @@ extern void setTrimValue(uint8_t phase, uint8_t idx, int16_t trim);
|
||||
#if defined(ROTARY_ENCODERS)
|
||||
int16_t getRotaryEncoder(uint8_t idx);
|
||||
void incRotaryEncoder(uint8_t idx, int8_t inc);
|
||||
inline bool navigationRotaryEncoder(uint8_t event)
|
||||
{
|
||||
return g_eeGeneral.reNavigation == (EVT_KEY_MASK(event) - BTN_REa + 1);
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(PCBSKY9X)
|
||||
@@ -1079,11 +1075,11 @@ typedef uint32_t rotenc_t;
|
||||
typedef uint8_t rotenc_t;
|
||||
#endif
|
||||
|
||||
#if defined(PCBACT)
|
||||
extern volatile rotenc_t g_rotenc[1];
|
||||
#elif defined(ROTARY_ENCODERS)
|
||||
#if defined(ROTARY_ENCODERS)
|
||||
// Global rotary encoder registers
|
||||
extern volatile rotenc_t g_rotenc[ROTARY_ENCODERS];
|
||||
#elif defined(ROTARY_ENCODER_NAVIGATION)
|
||||
extern volatile rotenc_t g_rotenc[1];
|
||||
#endif
|
||||
|
||||
#ifdef JETI
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 6.4 KiB |
@@ -34,6 +34,66 @@
|
||||
|
||||
#include "../open9x.h"
|
||||
|
||||
#if defined(ROTARY_ENCODER_NAVIGATION)
|
||||
|
||||
uint8_t RotEncoder ;
|
||||
|
||||
#if defined(TELEMETREZ)
|
||||
uint8_t TrotCount ; // TeZ version
|
||||
uint8_t LastTrotCount ; // TeZ version
|
||||
uint8_t TezRotary ;
|
||||
#else
|
||||
uint8_t RotPosition ;
|
||||
int8_t LastRotaryValue ;
|
||||
int8_t Rotary_diff ;
|
||||
int8_t RotaryControl ;
|
||||
#endif
|
||||
|
||||
void rotencPoll()
|
||||
{
|
||||
#if defined(TELEMETREZ)
|
||||
if (TrotCount != LastTrotCount ) {
|
||||
g_rotenc[0] = LastTrotCount = TrotCount ;
|
||||
}
|
||||
#else
|
||||
// Rotary Encoder polling
|
||||
PORTA = 0 ; // No pullups
|
||||
DDRA = 0x1F ; // Top 3 bits input
|
||||
asm(" rjmp 1f") ;
|
||||
asm("1:") ;
|
||||
// asm(" nop") ;
|
||||
// asm(" nop") ;
|
||||
uint8_t rotary ;
|
||||
rotary = PINA ;
|
||||
DDRA = 0xFF ; // Back to all outputs
|
||||
rotary &= 0xE0 ;
|
||||
// RotEncoder = rotary ;
|
||||
|
||||
#if defined(TELEMETREZ)
|
||||
if( TezRotary != 0)
|
||||
RotEncoder = 0x20; // switch is on
|
||||
#else
|
||||
RotEncoder = rotary ; // just read the lcd pin
|
||||
#endif
|
||||
|
||||
rotary &= 0xDF ;
|
||||
if ( rotary != RotPosition ) {
|
||||
uint8_t x ;
|
||||
x = RotPosition & 0x40 ;
|
||||
x <<= 1 ;
|
||||
x ^= rotary & 0x80 ;
|
||||
if ( x ) {
|
||||
g_rotenc[0] -= 1 ;
|
||||
}
|
||||
else {
|
||||
g_rotenc[0] += 1 ;
|
||||
}
|
||||
RotPosition = rotary ;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef SIMU
|
||||
inline void boardInit()
|
||||
{
|
||||
@@ -203,9 +263,13 @@ void readKeysAndTrims()
|
||||
|
||||
for (int i=0; i<8; i++) {
|
||||
// INP_D_TRM_RH_UP 0 .. INP_D_TRM_LH_UP 7
|
||||
keys[enuk].input(in & pgm_read_byte(crossTrim+i),(EnumKeys)enuk);
|
||||
keys[enuk].input(in & pgm_read_byte(crossTrim+i), (EnumKeys)enuk);
|
||||
++enuk;
|
||||
}
|
||||
|
||||
#if defined(ROTARY_ENCODER_NAVIGATION)
|
||||
keys[enuk].input(RotEncoder & 0x20, (EnumKeys)enuk); // Rotary Enc. Switch
|
||||
#endif
|
||||
}
|
||||
|
||||
bool checkSlaveMode()
|
||||
|
||||
@@ -197,4 +197,8 @@ void fadeBacklight();
|
||||
#define OUT_C_LCD_RES 2
|
||||
#define OUT_C_LCD_CS1 1
|
||||
|
||||
#if defined(ROTARY_ENCODER_NAVIGATION)
|
||||
void rotencPoll();
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user