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

Mega2560 target didn't compile

This commit is contained in:
bsongis 2014-09-12 07:34:59 +02:00
parent 36660505d2
commit 2237de99ed
5 changed files with 33 additions and 34 deletions

View file

@ -301,7 +301,6 @@ FORCEINLINE void readKeysAndTrims()
#endif #endif
} }
#if ROTARY_ENCODERS <= 2
ISR(INT2_vect) ISR(INT2_vect)
{ {
uint8_t input = (PIND & 0x0C); uint8_t input = (PIND & 0x0C);
@ -313,7 +312,6 @@ ISR(INT3_vect)
uint8_t input = (PIND & 0x0C); uint8_t input = (PIND & 0x0C);
if (input == 0 || input == 0x0C) incRotaryEncoder(0, +1); if (input == 0 || input == 0x0C) incRotaryEncoder(0, +1);
} }
#endif
ISR(INT5_vect) ISR(INT5_vect)
{ {

View file

@ -193,13 +193,8 @@ void pwrOff();
#define HAPTIC_OFF() PORTD |= (1 << OUT_D_HAPTIC) #define HAPTIC_OFF() PORTD |= (1 << OUT_D_HAPTIC)
// Rotary encoder driver // Rotary encoder driver
#if ROTARY_ENCODERS <= 2
#define REA_DOWN() (~PIND & 0x20) #define REA_DOWN() (~PIND & 0x20)
#define REB_DOWN() (~PIND & 0x10) #define REB_DOWN() (~PIND & 0x10)
#else
#define REA_DOWN() (0)
#define REB_DOWN() (0)
#endif
#define ROTENC_DOWN() (REA_DOWN() || REB_DOWN()) #define ROTENC_DOWN() (REA_DOWN() || REB_DOWN())
#endif #endif

View file

@ -116,12 +116,6 @@ void pwrOff()
#endif #endif
} }
#if ROTARY_ENCODERS <= 2
#define ROTENC_DOWN() ((~PIND & 0x20) || (~PIND & 0x10))
#else
#define ROTENC_DOWN() (0)
#endif
FORCEINLINE uint8_t keyDown() FORCEINLINE uint8_t keyDown()
{ {
return ((~PINL) & 0x3F) || ROTENC_DOWN(); return ((~PINL) & 0x3F) || ROTENC_DOWN();
@ -196,6 +190,24 @@ bool switchState(EnumKeys enuk)
return result; return result;
} }
// Trim switches ...
static const pm_uchar crossTrim[] PROGMEM ={
1<<INP_F_TRM_LH_DWN,
1<<INP_F_TRM_LH_UP,
1<<INP_F_TRM_LV_DWN,
1<<INP_F_TRM_LV_UP,
1<<INP_F_TRM_RV_DWN,
1<<INP_F_TRM_RV_UP,
1<<INP_F_TRM_RH_DWN,
1<<INP_F_TRM_RH_UP
};
uint8_t trimDown(uint8_t idx)
{
uint8_t in = ~PIND;
return (in & pgm_read_byte(crossTrim+idx));
}
FORCEINLINE void readKeysAndTrims() FORCEINLINE void readKeysAndTrims()
{ {
/* Original keys were connected to PORTB as follows: /* Original keys were connected to PORTB as follows:
@ -213,40 +225,28 @@ FORCEINLINE void readKeysAndTrims()
uint8_t enuk = KEY_MENU; uint8_t enuk = KEY_MENU;
keys[BTN_REa].input(~PIND & 0x20, BTN_REa); // User buttons ...
keys[BTN_REb].input(~PIND & 0x10, BTN_REb);
uint8_t tin = ~PINL; uint8_t tin = ~PINL;
uint8_t in; uint8_t in;
in = (tin & 0x0f) << 3; in = (tin & 0x0f) << 3;
in |= (tin & 0x30) >> 3; in |= (tin & 0x30) >> 3;
for (int i=1; i<7; i++) for (int i=1; i<7; i++) {
{
//INP_B_KEY_MEN 1 .. INP_B_KEY_LFT 6 //INP_B_KEY_MEN 1 .. INP_B_KEY_LFT 6
keys[enuk].input(in & (1<<i),(EnumKeys)enuk); keys[enuk].input(in & (1<<i),(EnumKeys)enuk);
++enuk; ++enuk;
} }
// Trim switches ... // Trims ...
static const pm_uchar crossTrim[] PROGMEM ={
1<<INP_F_TRM_LH_DWN,
1<<INP_F_TRM_LH_UP,
1<<INP_F_TRM_LV_DWN,
1<<INP_F_TRM_LV_UP,
1<<INP_F_TRM_RV_DWN,
1<<INP_F_TRM_RV_UP,
1<<INP_F_TRM_RH_DWN,
1<<INP_F_TRM_RH_UP
};
in = ~PINF; in = ~PINF;
for (int i=0; i<8; i++) { for (int i=0; i<8; i++) {
// INP_D_TRM_RH_UP 0 .. INP_D_TRM_LH_UP 7 // 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; ++enuk;
} }
keys[BTN_REa].input(REA_DOWN(), BTN_REa);
keys[BTN_REb].input(REB_DOWN(), BTN_REb);
} }
ISR(INT2_vect) ISR(INT2_vect)

View file

@ -194,4 +194,9 @@ void pwrOff();
#define HAPTIC_ON() PORTD &= ~(1 << OUT_D_HAPTIC) #define HAPTIC_ON() PORTD &= ~(1 << OUT_D_HAPTIC)
#define HAPTIC_OFF() PORTD |= (1 << OUT_D_HAPTIC) #define HAPTIC_OFF() PORTD |= (1 << OUT_D_HAPTIC)
// Rotary encoder driver
#define REA_DOWN() (~PIND & 0x20)
#define REB_DOWN() (~PIND & 0x10)
#define ROTENC_DOWN() (REA_DOWN() || REB_DOWN())
#endif #endif

View file

@ -225,6 +225,7 @@ extern void rxPdcUsart( void (*pChProcess)(uint8_t x) );
#define PINC ~pinc #define PINC ~pinc
#define PIND ~pind #define PIND ~pind
#define PINE ~pine #define PINE ~pine
#define PINF ~pinf
#define PING ~ping #define PING ~ping
#define PINH ~pinh #define PINH ~pinh
#define PINJ ~pinj #define PINJ ~pinj
@ -334,7 +335,7 @@ extern uint32_t Master_frequency;
#define __enable_irq() #define __enable_irq()
#endif #endif
extern volatile unsigned char pina, pinb, pinc, pind, pine, ping, pinh, pinj, pinl; extern volatile unsigned char pina, pinb, pinc, pind, pine, pinf, ping, pinh, pinj, pinl;
extern uint8_t portb, portc, porth, dummyport; extern uint8_t portb, portc, porth, dummyport;
extern uint16_t dummyport16; extern uint16_t dummyport16;
extern uint8_t main_thread_running; extern uint8_t main_thread_running;