diff options
author | Priyadi Iman Nurcahyo <priyadi@priyadi.net> | 2017-04-19 01:40:16 +0700 |
---|---|---|
committer | Priyadi Iman Nurcahyo <priyadi@priyadi.net> | 2017-04-19 01:40:16 +0700 |
commit | ffa4c72a893b416da32efef80f4779b8bd48b4bb (patch) | |
tree | d0a3205c6bfef232719d19ce5e14b166d16cbba9 /quantum | |
parent | ae8ac581c0253157eefe035d65499a9f162b07aa (diff) | |
download | qmk_firmware-ffa4c72a893b416da32efef80f4779b8bd48b4bb.tar.gz qmk_firmware-ffa4c72a893b416da32efef80f4779b8bd48b4bb.zip |
Faux clicky bug fixes
Diffstat (limited to 'quantum')
-rw-r--r-- | quantum/fauxclicky.c | 15 | ||||
-rw-r--r-- | quantum/fauxclicky.h | 10 |
2 files changed, 9 insertions, 16 deletions
diff --git a/quantum/fauxclicky.c b/quantum/fauxclicky.c index 13273e705..c3341ca33 100644 --- a/quantum/fauxclicky.c +++ b/quantum/fauxclicky.c | |||
@@ -20,13 +20,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
20 | #include <stdbool.h> | 20 | #include <stdbool.h> |
21 | #include <musical_notes.h> | 21 | #include <musical_notes.h> |
22 | 22 | ||
23 | __attribute__ ((weak)) | ||
24 | float fauxclicky_pressed_note[2] = MUSICAL_NOTE(_F3, 2); | ||
25 | __attribute__ ((weak)) | ||
26 | float fauxclicky_released_note[2] = MUSICAL_NOTE(_A3, 2); | ||
27 | __attribute__ ((weak)) | ||
28 | float fauxclicky_beep_note[2] = MUSICAL_NOTE(_C3, 2); | ||
29 | |||
30 | bool fauxclicky_enabled = true; | 23 | bool fauxclicky_enabled = true; |
31 | uint16_t note_start = 0; | 24 | uint16_t note_start = 0; |
32 | bool note_playing = false; | 25 | bool note_playing = false; |
@@ -48,13 +41,13 @@ void fauxclicky_stop() | |||
48 | note_playing = false; | 41 | note_playing = false; |
49 | } | 42 | } |
50 | 43 | ||
51 | void fauxclicky_play(float note[2]) { | 44 | void fauxclicky_play(float note[]) { |
52 | if (!fauxclicky_enabled) return; | 45 | if (!fauxclicky_enabled) return; |
53 | if (note_playing) fauxclicky_stop(); | 46 | if (note_playing) fauxclicky_stop(); |
54 | FAUXCLICKY_TIMER_PERIOD = (uint16_t)(((float)F_CPU) / (note[0] * FAUXCLICKY_CPU_PRESCALER)); | 47 | FAUXCLICKY_TIMER_PERIOD = (uint16_t)(((float)F_CPU) / (note[0] * (float)FAUXCLICKY_CPU_PRESCALER)); |
55 | FAUXCLICKY_DUTY_CYCLE = (uint16_t)((((float)F_CPU) / (note[0] * FAUXCLICKY_CPU_PRESCALER)) / 2); | 48 | FAUXCLICKY_DUTY_CYCLE = (uint16_t)((((float)F_CPU) / (note[0] * (float)FAUXCLICKY_CPU_PRESCALER)) / (float)2); |
56 | note_playing = true; | 49 | note_playing = true; |
57 | note_period = (note[1] / 16) * (60 / (float)FAUXCLICKY_TEMPO) * 100; // check this | 50 | note_period = (note[1] / (float)16) * ((float)60 / (float)FAUXCLICKY_TEMPO) * 1000; |
58 | note_start = timer_read(); | 51 | note_start = timer_read(); |
59 | FAUXCLICKY_ENABLE_OUTPUT; | 52 | FAUXCLICKY_ENABLE_OUTPUT; |
60 | } | 53 | } |
diff --git a/quantum/fauxclicky.h b/quantum/fauxclicky.h index 109bd0d83..1a8e188dd 100644 --- a/quantum/fauxclicky.h +++ b/quantum/fauxclicky.h | |||
@@ -21,11 +21,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
21 | #include "stdbool.h" | 21 | #include "stdbool.h" |
22 | 22 | ||
23 | __attribute__ ((weak)) | 23 | __attribute__ ((weak)) |
24 | float fauxclicky_pressed_note[2]; | 24 | float fauxclicky_pressed_note[2] = MUSICAL_NOTE(_D4, 0.25); |
25 | __attribute__ ((weak)) | 25 | __attribute__ ((weak)) |
26 | float fauxclicky_released_note[2]; | 26 | float fauxclicky_released_note[2] = MUSICAL_NOTE(_C4, 0.125); |
27 | __attribute__ ((weak)) | 27 | __attribute__ ((weak)) |
28 | float fauxclicky_beep_note[2]; | 28 | float fauxclicky_beep_note[2] = MUSICAL_NOTE(_C4, 0.25); |
29 | 29 | ||
30 | bool fauxclicky_enabled; | 30 | bool fauxclicky_enabled; |
31 | 31 | ||
@@ -73,11 +73,11 @@ bool fauxclicky_enabled; | |||
73 | #endif | 73 | #endif |
74 | 74 | ||
75 | #ifndef FAUXCLICKY_ENABLE_OUTPUT | 75 | #ifndef FAUXCLICKY_ENABLE_OUTPUT |
76 | #define FAUXCLICKY_ENABLE_OUTPUT TCCR3A |= _BV(COM3A1); | 76 | #define FAUXCLICKY_ENABLE_OUTPUT TCCR3A |= _BV(COM3A1) |
77 | #endif | 77 | #endif |
78 | 78 | ||
79 | #ifndef FAUXCLICKY_DISABLE_OUTPUT | 79 | #ifndef FAUXCLICKY_DISABLE_OUTPUT |
80 | #define FAUXCLICKY_DISABLE_OUTPUT TCCR3A &= ~(_BV(COM3A1) | _BV(COM3A0)); | 80 | #define FAUXCLICKY_DISABLE_OUTPUT TCCR3A &= ~(_BV(COM3A1) | _BV(COM3A0)) |
81 | #endif | 81 | #endif |
82 | 82 | ||
83 | #ifndef FAUXCLICKY_TIMER_PERIOD | 83 | #ifndef FAUXCLICKY_TIMER_PERIOD |