mirror of
https://github.com/opentx/opentx.git
synced 2025-07-23 00:05:17 +03:00
Issue 93 fixed
Flash saving.
This commit is contained in:
parent
08c24d0ffb
commit
de18436cda
5 changed files with 19 additions and 23 deletions
|
@ -82,10 +82,6 @@ void Key::input(bool val, EnumKeys enuk)
|
||||||
if(m_state && m_vals==0){ //gerade eben sprung auf 0
|
if(m_state && m_vals==0){ //gerade eben sprung auf 0
|
||||||
if(m_state!=KSTATE_KILLED) {
|
if(m_state!=KSTATE_KILLED) {
|
||||||
putEvent(EVT_KEY_BREAK(enuk));
|
putEvent(EVT_KEY_BREAK(enuk));
|
||||||
if(!( m_state == 16 && m_cnt<16)){
|
|
||||||
m_dblcnt=0;
|
|
||||||
}
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
m_cnt = 0;
|
m_cnt = 0;
|
||||||
m_state = KSTATE_OFF;
|
m_state = KSTATE_OFF;
|
||||||
|
@ -94,7 +90,6 @@ void Key::input(bool val, EnumKeys enuk)
|
||||||
case KSTATE_OFF:
|
case KSTATE_OFF:
|
||||||
if(m_vals==FFVAL){ //gerade eben sprung auf ff
|
if(m_vals==FFVAL){ //gerade eben sprung auf ff
|
||||||
m_state = KSTATE_START;
|
m_state = KSTATE_START;
|
||||||
if(m_cnt>16) m_dblcnt=0; //pause zu lang fuer double
|
|
||||||
m_cnt = 0;
|
m_cnt = 0;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -102,7 +97,6 @@ void Key::input(bool val, EnumKeys enuk)
|
||||||
case KSTATE_START:
|
case KSTATE_START:
|
||||||
putEvent(EVT_KEY_FIRST(enuk));
|
putEvent(EVT_KEY_FIRST(enuk));
|
||||||
inacCounter = 0;
|
inacCounter = 0;
|
||||||
m_dblcnt++;
|
|
||||||
m_state = KSTATE_RPTDELAY;
|
m_state = KSTATE_RPTDELAY;
|
||||||
m_cnt = 0;
|
m_cnt = 0;
|
||||||
break;
|
break;
|
||||||
|
@ -142,13 +136,14 @@ void Key::input(bool val, EnumKeys enuk)
|
||||||
|
|
||||||
void pauseEvents(uint8_t event)
|
void pauseEvents(uint8_t event)
|
||||||
{
|
{
|
||||||
event=event & EVT_KEY_MASK;
|
event = event & EVT_KEY_MASK;
|
||||||
if(event < (int)DIM(keys)) keys[event].pauseEvents();
|
if (event < (int)DIM(keys)) keys[event].pauseEvents();
|
||||||
}
|
}
|
||||||
|
|
||||||
void killEvents(uint8_t event)
|
void killEvents(uint8_t event)
|
||||||
{
|
{
|
||||||
event=event & EVT_KEY_MASK;
|
event = event & EVT_KEY_MASK;
|
||||||
if(event < (int)DIM(keys)) keys[event].killEvents();
|
if (event < (int)DIM(keys)) keys[event].killEvents();
|
||||||
}
|
}
|
||||||
|
|
||||||
volatile uint16_t g_tmr10ms;
|
volatile uint16_t g_tmr10ms;
|
||||||
|
|
|
@ -1250,11 +1250,14 @@ void checkTrims()
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (beepTrim) {
|
if (beepTrim) {
|
||||||
killEvents(event);
|
if (beepTrim == 1) {
|
||||||
if (beepTrim == 1)
|
|
||||||
AUDIO_TRIM_MIDDLE(after);
|
AUDIO_TRIM_MIDDLE(after);
|
||||||
else
|
pauseEvents(event);
|
||||||
|
}
|
||||||
|
else {
|
||||||
AUDIO_TRIM_END(after);
|
AUDIO_TRIM_END(after);
|
||||||
|
killEvents(event);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
AUDIO_TRIM(event, after);
|
AUDIO_TRIM(event, after);
|
||||||
|
@ -2759,14 +2762,14 @@ ISR(TIMER0_COMP_vect, ISR_NOBLOCK) //10ms timer
|
||||||
{
|
{
|
||||||
cli();
|
cli();
|
||||||
|
|
||||||
#if defined (PCBV4)
|
#if defined(PCBV4)
|
||||||
static uint8_t accuracyWarble = 4; // because 16M / 1024 / 100 = 156.25. So bump every 4.
|
static uint8_t accuracyWarble = 4; // because 16M / 1024 / 100 = 156.25. So bump every 4.
|
||||||
uint8_t bump = (!(accuracyWarble++ & 0x03)) ? 157 : 156;
|
uint8_t bump = (!(accuracyWarble++ & 0x03)) ? 157 : 156;
|
||||||
TIMSK2 &= ~(1<<OCIE2A); // stop reentrance
|
TIMSK2 &= ~(1<<OCIE2A); // stop reentrance
|
||||||
OCR2A += bump;
|
OCR2A += bump;
|
||||||
#else
|
#else
|
||||||
TIMSK &= ~(1<<OCIE0); // stop reentrance
|
TIMSK &= ~(1<<OCIE0); // stop reentrance
|
||||||
#if defined (AUDIO)
|
#if defined(AUDIO) || defined(VOICE)
|
||||||
OCR0 += 2; // interrupt every 128us
|
OCR0 += 2; // interrupt every 128us
|
||||||
#else
|
#else
|
||||||
static uint8_t accuracyWarble = 4; // because 16M / 1024 / 100 = 156.25. So bump every 4.
|
static uint8_t accuracyWarble = 4; // because 16M / 1024 / 100 = 156.25. So bump every 4.
|
||||||
|
|
11
src/open9x.h
11
src/open9x.h
|
@ -339,20 +339,17 @@ class Key
|
||||||
#endif
|
#endif
|
||||||
#define KSTATE_OFF 0
|
#define KSTATE_OFF 0
|
||||||
#define KSTATE_RPTDELAY 95 // gruvin: delay state before key repeating starts
|
#define KSTATE_RPTDELAY 95 // gruvin: delay state before key repeating starts
|
||||||
//#define KSTATE_SHORT 96
|
|
||||||
#define KSTATE_START 97
|
#define KSTATE_START 97
|
||||||
#define KSTATE_PAUSE 98
|
#define KSTATE_PAUSE 98
|
||||||
#define KSTATE_KILLED 99
|
#define KSTATE_KILLED 99
|
||||||
uint8_t m_vals:FILTERBITS; // key debounce? 4 = 40ms
|
uint8_t m_vals; // key debounce? 4 = 40ms
|
||||||
uint8_t m_dblcnt:2;
|
|
||||||
uint8_t m_cnt;
|
uint8_t m_cnt;
|
||||||
uint8_t m_state;
|
uint8_t m_state;
|
||||||
public:
|
public:
|
||||||
void input(bool val, EnumKeys enuk);
|
void input(bool val, EnumKeys enuk);
|
||||||
bool state() { return m_vals==FFVAL; }
|
bool state() { return m_vals==FFVAL; }
|
||||||
void pauseEvents() { m_state = KSTATE_PAUSE; m_cnt = 0;}
|
void pauseEvents() { m_state = KSTATE_PAUSE; m_cnt = 0;}
|
||||||
void killEvents() { m_state = KSTATE_KILLED; m_dblcnt=0; }
|
void killEvents() { m_state = KSTATE_KILLED; }
|
||||||
uint8_t getDbl() { return m_dblcnt; }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
extern Key keys[NUM_KEYS];
|
extern Key keys[NUM_KEYS];
|
||||||
|
|
|
@ -808,6 +808,7 @@ void setupPulses()
|
||||||
OCR3A = 50000 ;
|
OCR3A = 50000 ;
|
||||||
OCR3B = 5000 ;
|
OCR3B = 5000 ;
|
||||||
set_timer3_ppm() ;
|
set_timer3_ppm() ;
|
||||||
|
PORTB &= ~(1<<OUT_B_PPM); // Hold PPM output low
|
||||||
break ;
|
break ;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -107,7 +107,7 @@ void t_voice::voice_process(void)
|
||||||
VoiceSerial += 260;
|
VoiceSerial += 260;
|
||||||
}
|
}
|
||||||
VoiceTimer = 16;
|
VoiceTimer = 16;
|
||||||
if ((VoiceSerial & 0x00FF) >= 0xF0) {
|
if ((VoiceSerial & 0x01F0) == 0xF0) { // Looking for F0-F7 or FF
|
||||||
if (VoiceSerial == 0xFF) {
|
if (VoiceSerial == 0xFF) {
|
||||||
VoiceShift = 1;
|
VoiceShift = 1;
|
||||||
return;
|
return;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue