diff options
| author | Selene ToyKeeper | 2023-10-26 06:58:23 -0600 |
|---|---|---|
| committer | Selene ToyKeeper | 2023-10-26 06:58:23 -0600 |
| commit | 5e86193dce022967cbe41288d30cb4b21500f5e6 (patch) | |
| tree | 69215ca189e9e33010ae0e3bcf63bb8a7e2b7c27 /hw | |
| parent | rewrote blf-lantern (blf-lt1) code to use multi-channel and PWM+DSM, (diff) | |
| download | anduril-5e86193dce022967cbe41288d30cb4b21500f5e6.tar.gz anduril-5e86193dce022967cbe41288d30cb4b21500f5e6.tar.bz2 anduril-5e86193dce022967cbe41288d30cb4b21500f5e6.zip | |
improved blf-lt1 ramp and fixed issue with missed button presses
(it seems t85 doesn't like having timer overflow interrupts enabled in standby?)
Diffstat (limited to '')
| -rw-r--r-- | hwdef-blf-lt1.c | 7 | ||||
| -rw-r--r-- | hwdef-blf-lt1.h | 2 |
2 files changed, 8 insertions, 1 deletions
diff --git a/hwdef-blf-lt1.c b/hwdef-blf-lt1.c index df17612..8a8af52 100644 --- a/hwdef-blf-lt1.c +++ b/hwdef-blf-lt1.c @@ -50,6 +50,10 @@ Channel channels[] = { }; void set_level_zero() { + // disable timer 0 overflow interrupt + // (helps improve button press handling from Off state) + TIMSK &= ~(1 << TOIE0); + // turn off all LEDs ch1_dsm_lvl = 0; ch2_dsm_lvl = 0; @@ -67,6 +71,9 @@ void set_hw_levels(PWM_DATATYPE ch1, PWM_DATATYPE ch2) { // set hardware PWM levels and init dsm loop CH1_PWM = ch1_pwm = ch1 >> 7; CH2_PWM = ch2_pwm = ch2 >> 7; + + // enable timer 0 overflow interrupt so DSM can work + TIMSK |= (1 << TOIE0); } // delta-sigma modulation of PWM outputs diff --git a/hwdef-blf-lt1.h b/hwdef-blf-lt1.h index 571fa44..bac21cf 100644 --- a/hwdef-blf-lt1.h +++ b/hwdef-blf-lt1.h @@ -94,7 +94,7 @@ inline void hwdef_setup() { TCCR0A = PHASE; // enable timer 0 overflow interrupt for DSM purposes - TIMSK |= (1 << TOIE0); + //TIMSK |= (1 << TOIE0); // moved to hwdef.c functions instead // configure e-switch PORTB = (1 << SWITCH_PIN); // e-switch is the only input |
