delay on haptic shutdown to allow motor time to spinup!
This commit is contained in:
+11
-6
@@ -43,6 +43,7 @@ audioQueue::audioQueue()
|
|||||||
|
|
||||||
#ifdef HAPTIC
|
#ifdef HAPTIC
|
||||||
hapticTick = 0;
|
hapticTick = 0;
|
||||||
|
hapticSpinUpTime = 0;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -70,21 +71,25 @@ void audioQueue::heartbeat()
|
|||||||
toneTimeLeft = 0; //time gets counted down
|
toneTimeLeft = 0; //time gets counted down
|
||||||
}
|
}
|
||||||
|
|
||||||
//this works - but really needs a delay added in.
|
|
||||||
// reason is because it takes time for the motor to spin up
|
|
||||||
// need to take this into account when the tone sent is really short!
|
|
||||||
// initial thoughts are a seconds queue to process haptic that gets
|
|
||||||
// fired from here. end result is haptic events run for mix of 2 seconds?
|
|
||||||
|
|
||||||
#if defined(HAPTIC)
|
#if defined(HAPTIC)
|
||||||
|
|
||||||
if (toneHaptic) {
|
if (toneHaptic) {
|
||||||
hapticOn((g_eeGeneral.hapticStrength * 2) * 10);
|
hapticOn((g_eeGeneral.hapticStrength * 2) * 10);
|
||||||
|
hapticSpinUpTime = HAPTIC_SPINUP; //min time haptic runs for. Might be worth a config option in system prefs to allow user to set to suit motor?
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
||||||
hapticOff();
|
#if defined(HAPTIC)
|
||||||
|
if(hapticSpinUpTime > 0){
|
||||||
|
hapticSpinUpTime--;
|
||||||
|
} else {
|
||||||
|
hapticOff();
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if (tonePause) {
|
if (tonePause) {
|
||||||
if (queueTone(0, tonePause * 10, 0)) {
|
if (queueTone(0, tonePause * 10, 0)) {
|
||||||
|
|||||||
@@ -188,6 +188,7 @@ class audioQueue
|
|||||||
uint8_t toneHaptic;
|
uint8_t toneHaptic;
|
||||||
uint8_t hapticTick;
|
uint8_t hapticTick;
|
||||||
uint8_t queueToneHaptic[AUDIO_QUEUE_LENGTH];
|
uint8_t queueToneHaptic[AUDIO_QUEUE_LENGTH];
|
||||||
|
uint8_t hapticSpinUpTime;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(PCBSTD)
|
#if defined(PCBSTD)
|
||||||
@@ -200,6 +201,8 @@ extern audioQueue audio;
|
|||||||
|
|
||||||
void audioDefevent(uint8_t e);
|
void audioDefevent(uint8_t e);
|
||||||
|
|
||||||
|
#define HAPTIC_SPINUP (10);
|
||||||
|
|
||||||
#define AUDIO_KEYPAD_UP() audioDefevent(AU_KEYPAD_UP)
|
#define AUDIO_KEYPAD_UP() audioDefevent(AU_KEYPAD_UP)
|
||||||
#define AUDIO_KEYPAD_DOWN() audioDefevent(AU_KEYPAD_DOWN)
|
#define AUDIO_KEYPAD_DOWN() audioDefevent(AU_KEYPAD_DOWN)
|
||||||
#define AUDIO_MENUS() audioDefevent(AU_MENUS)
|
#define AUDIO_MENUS() audioDefevent(AU_MENUS)
|
||||||
@@ -207,6 +210,7 @@ void audioDefevent(uint8_t e);
|
|||||||
#define AUDIO_WARNING2() audioDefevent(AU_WARNING2)
|
#define AUDIO_WARNING2() audioDefevent(AU_WARNING2)
|
||||||
#define AUDIO_ERROR() audioDefevent(AU_ERROR)
|
#define AUDIO_ERROR() audioDefevent(AU_ERROR)
|
||||||
|
|
||||||
|
|
||||||
#define IS_AUDIO_BUSY() audio.busy()
|
#define IS_AUDIO_BUSY() audio.busy()
|
||||||
|
|
||||||
#define AUDIO_TIMER_30() audioDefevent(AU_TIMER_30)
|
#define AUDIO_TIMER_30() audioDefevent(AU_TIMER_30)
|
||||||
|
|||||||
Reference in New Issue
Block a user