aboutsummaryrefslogtreecommitdiff
path: root/hw
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--hwdef-blf-lt1.c7
-rw-r--r--hwdef-blf-lt1.h2
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