mirror of
				https://github.com/mfulz/qmk_firmware.git
				synced 2025-10-31 05:12:33 +01:00 
			
		
		
		
	Faux clicky bug fixes
This commit is contained in:
		
							parent
							
								
									ae8ac581c0
								
							
						
					
					
						commit
						ffa4c72a89
					
				| @ -20,13 +20,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>. | |||||||
| #include <stdbool.h> | #include <stdbool.h> | ||||||
| #include <musical_notes.h> | #include <musical_notes.h> | ||||||
| 
 | 
 | ||||||
| __attribute__ ((weak)) |  | ||||||
| float fauxclicky_pressed_note[2] = MUSICAL_NOTE(_F3, 2); |  | ||||||
| __attribute__ ((weak)) |  | ||||||
| float fauxclicky_released_note[2] = MUSICAL_NOTE(_A3, 2); |  | ||||||
| __attribute__ ((weak)) |  | ||||||
| float fauxclicky_beep_note[2] = MUSICAL_NOTE(_C3, 2); |  | ||||||
| 
 |  | ||||||
| bool fauxclicky_enabled = true; | bool fauxclicky_enabled = true; | ||||||
| uint16_t note_start = 0; | uint16_t note_start = 0; | ||||||
| bool note_playing = false; | bool note_playing = false; | ||||||
| @ -48,13 +41,13 @@ void fauxclicky_stop() | |||||||
|     note_playing = false; |     note_playing = false; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void fauxclicky_play(float note[2]) { | void fauxclicky_play(float note[]) { | ||||||
|     if (!fauxclicky_enabled) return; |     if (!fauxclicky_enabled) return; | ||||||
|     if (note_playing) fauxclicky_stop(); |     if (note_playing) fauxclicky_stop(); | ||||||
|     FAUXCLICKY_TIMER_PERIOD = (uint16_t)(((float)F_CPU) / (note[0] * FAUXCLICKY_CPU_PRESCALER)); |     FAUXCLICKY_TIMER_PERIOD = (uint16_t)(((float)F_CPU) / (note[0] * (float)FAUXCLICKY_CPU_PRESCALER)); | ||||||
|     FAUXCLICKY_DUTY_CYCLE = (uint16_t)((((float)F_CPU) / (note[0] * FAUXCLICKY_CPU_PRESCALER)) / 2); |     FAUXCLICKY_DUTY_CYCLE = (uint16_t)((((float)F_CPU) / (note[0] * (float)FAUXCLICKY_CPU_PRESCALER)) / (float)2); | ||||||
|     note_playing = true; |     note_playing = true; | ||||||
|     note_period = (note[1] / 16) * (60 / (float)FAUXCLICKY_TEMPO) * 100;   // check this
 |     note_period = (note[1] / (float)16) * ((float)60 / (float)FAUXCLICKY_TEMPO) * 1000; | ||||||
|     note_start = timer_read(); |     note_start = timer_read(); | ||||||
|     FAUXCLICKY_ENABLE_OUTPUT; |     FAUXCLICKY_ENABLE_OUTPUT; | ||||||
| } | } | ||||||
|  | |||||||
| @ -21,11 +21,11 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>. | |||||||
| #include "stdbool.h" | #include "stdbool.h" | ||||||
| 
 | 
 | ||||||
| __attribute__ ((weak)) | __attribute__ ((weak)) | ||||||
| float fauxclicky_pressed_note[2]; | float fauxclicky_pressed_note[2] = MUSICAL_NOTE(_D4, 0.25); | ||||||
| __attribute__ ((weak)) | __attribute__ ((weak)) | ||||||
| float fauxclicky_released_note[2]; | float fauxclicky_released_note[2] = MUSICAL_NOTE(_C4, 0.125); | ||||||
| __attribute__ ((weak)) | __attribute__ ((weak)) | ||||||
| float fauxclicky_beep_note[2]; | float fauxclicky_beep_note[2] = MUSICAL_NOTE(_C4, 0.25); | ||||||
| 
 | 
 | ||||||
| bool fauxclicky_enabled; | bool fauxclicky_enabled; | ||||||
| 
 | 
 | ||||||
| @ -73,11 +73,11 @@ bool fauxclicky_enabled; | |||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| #ifndef FAUXCLICKY_ENABLE_OUTPUT | #ifndef FAUXCLICKY_ENABLE_OUTPUT | ||||||
| #define FAUXCLICKY_ENABLE_OUTPUT TCCR3A |= _BV(COM3A1); | #define FAUXCLICKY_ENABLE_OUTPUT TCCR3A |= _BV(COM3A1) | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| #ifndef FAUXCLICKY_DISABLE_OUTPUT | #ifndef FAUXCLICKY_DISABLE_OUTPUT | ||||||
| #define FAUXCLICKY_DISABLE_OUTPUT TCCR3A &= ~(_BV(COM3A1) | _BV(COM3A0)); | #define FAUXCLICKY_DISABLE_OUTPUT TCCR3A &= ~(_BV(COM3A1) | _BV(COM3A0)) | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| #ifndef FAUXCLICKY_TIMER_PERIOD | #ifndef FAUXCLICKY_TIMER_PERIOD | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Priyadi Iman Nurcahyo
						Priyadi Iman Nurcahyo