aboutsummaryrefslogtreecommitdiff
path: root/quantum/backlight/backlight_arm.c
diff options
context:
space:
mode:
Diffstat (limited to 'quantum/backlight/backlight_arm.c')
-rw-r--r--quantum/backlight/backlight_arm.c25
1 files changed, 3 insertions, 22 deletions
diff --git a/quantum/backlight/backlight_arm.c b/quantum/backlight/backlight_arm.c
index 8c6909a4a..f7065906f 100644
--- a/quantum/backlight/backlight_arm.c
+++ b/quantum/backlight/backlight_arm.c
@@ -106,7 +106,6 @@ void backlight_task(void) {}
106# define BREATHING_HALT_ON 2 106# define BREATHING_HALT_ON 2
107# define BREATHING_STEPS 128 107# define BREATHING_STEPS 128
108 108
109static uint8_t breathing_period = BREATHING_PERIOD;
110static uint8_t breathing_halt = BREATHING_NO_HALT; 109static uint8_t breathing_halt = BREATHING_NO_HALT;
111static uint16_t breathing_counter = 0; 110static uint16_t breathing_counter = 0;
112 111
@@ -114,7 +113,7 @@ bool is_breathing(void) { return BACKLIGHT_PWM_DRIVER.config == &pwmCFG_breathin
114 113
115static inline void breathing_min(void) { breathing_counter = 0; } 114static inline void breathing_min(void) { breathing_counter = 0; }
116 115
117static inline void breathing_max(void) { breathing_counter = breathing_period * 256 / 2; } 116static inline void breathing_max(void) { breathing_counter = get_breathing_period() * 256 / 2; }
118 117
119void breathing_interrupt_enable(void) { 118void breathing_interrupt_enable(void) {
120 pwmStop(&BACKLIGHT_PWM_DRIVER); 119 pwmStop(&BACKLIGHT_PWM_DRIVER);
@@ -166,17 +165,6 @@ void breathing_toggle(void) {
166 breathing_enable(); 165 breathing_enable();
167} 166}
168 167
169void breathing_period_set(uint8_t value) {
170 if (!value) value = 1;
171 breathing_period = value;
172}
173
174void breathing_period_default(void) { breathing_period_set(BREATHING_PERIOD); }
175
176void breathing_period_inc(void) { breathing_period_set(breathing_period + 1); }
177
178void breathing_period_dec(void) { breathing_period_set(breathing_period - 1); }
179
180/* To generate breathing curve in python: 168/* To generate breathing curve in python:
181 * from math import sin, pi; [int(sin(x/128.0*pi)**4*255) for x in range(128)] 169 * from math import sin, pi; [int(sin(x/128.0*pi)**4*255) for x in range(128)]
182 */ 170 */
@@ -187,7 +175,8 @@ static inline uint16_t scale_backlight(uint16_t v) { return v / BACKLIGHT_LEVELS
187 175
188static void breathing_callback(PWMDriver *pwmp) { 176static void breathing_callback(PWMDriver *pwmp) {
189 (void)pwmp; 177 (void)pwmp;
190 uint16_t interval = (uint16_t)breathing_period * 256 / BREATHING_STEPS; 178 uint8_t breathing_period = get_breathing_period();
179 uint16_t interval = (uint16_t)breathing_period * 256 / BREATHING_STEPS;
191 // resetting after one period to prevent ugly reset at overflow. 180 // resetting after one period to prevent ugly reset at overflow.
192 breathing_counter = (breathing_counter + 1) % (breathing_period * 256); 181 breathing_counter = (breathing_counter + 1) % (breathing_period * 256);
193 uint8_t index = breathing_counter / interval % BREATHING_STEPS; 182 uint8_t index = breathing_counter / interval % BREATHING_STEPS;
@@ -203,12 +192,4 @@ static void breathing_callback(PWMDriver *pwmp) {
203 chSysUnlockFromISR(); 192 chSysUnlockFromISR();
204} 193}
205 194
206#else
207
208__attribute__((weak)) void backlight_init_ports(void) {}
209
210__attribute__((weak)) void backlight_set(uint8_t level) {}
211
212__attribute__((weak)) void backlight_task(void) {}
213
214#endif 195#endif