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