diff options
| author | Selene ToyKeeper | 2018-09-13 03:44:23 -0600 |
|---|---|---|
| committer | Selene ToyKeeper | 2018-09-13 03:44:23 -0600 |
| commit | 215a56b08586dcf4352b6eb2713f5238a4d5b360 (patch) | |
| tree | b9eb06ecc88e9941273a04470bad97a6f6078081 /spaghetti-monster/fsm-ramping.c | |
| parent | fixed bug: clicking MAX_CLICKS+1 times and holding the final click would hang... (diff) | |
| download | anduril-215a56b08586dcf4352b6eb2713f5238a4d5b360.tar.gz anduril-215a56b08586dcf4352b6eb2713f5238a4d5b360.tar.bz2 anduril-215a56b08586dcf4352b6eb2713f5238a4d5b360.zip | |
Added tint ramping. Not tested yet. Also added BLF Lantern build target.
Diffstat (limited to 'spaghetti-monster/fsm-ramping.c')
| -rw-r--r-- | spaghetti-monster/fsm-ramping.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/spaghetti-monster/fsm-ramping.c b/spaghetti-monster/fsm-ramping.c index 6cdf5e6..0492943 100644 --- a/spaghetti-monster/fsm-ramping.c +++ b/spaghetti-monster/fsm-ramping.c @@ -25,9 +25,20 @@ void set_level(uint8_t level) { actual_level = level; + + #ifdef USE_TINT_RAMPING + // calculate actual PWM levels based on a single-channel ramp + // and a global tint value + uint8_t brightness = pgm_read_byte(pwm1_levels + level); + uint8_t warm_PWM, cool_PWM; + cool_PWM = (uint16_t)tint * brightness / 255; + warm_PWM = brightness - cool_PWM; + #endif + #ifdef USE_SET_LEVEL_GRADUALLY gradual_target = level; #endif + #ifdef USE_INDICATOR_LED #ifdef USE_INDICATOR_LED_WHILE_RAMPING if (! go_to_standby) @@ -40,6 +51,7 @@ void set_level(uint8_t level) { indicator_led(0); #endif #endif + //TCCR0A = PHASE; if (level == 0) { #if PWM_CHANNELS >= 1 @@ -56,6 +68,12 @@ void set_level(uint8_t level) { #endif } else { level --; + + #ifdef USE_TINT_RAMPING + PWM1_LVL = warm_PWM; + PWM2_LVL = cool_PWM; + #else + #if PWM_CHANNELS >= 1 PWM1_LVL = pgm_read_byte(pwm1_levels + level); #endif @@ -68,6 +86,8 @@ void set_level(uint8_t level) { #if PWM_CHANNELS >= 4 PWM4_LVL = pgm_read_byte(pwm4_levels + level); #endif + + #endif // ifdef USE_TINT_RAMPING } #ifdef USE_DYNAMIC_UNDERCLOCKING auto_clock_speed(); |
