diff --git a/src/pwm.cpp b/src/pwm.cpp index bfb8403..4e9bcca 100644 --- a/src/pwm.cpp +++ b/src/pwm.cpp @@ -23,6 +23,22 @@ volatile uint16_t newPwm = 0; +void pwmInit() { + P1DIR |= BIT6; + P1SEL |= BIT6; + P1OUT = 0; + + TACCR0 = PWM_MAX; + TACCR1 = 8; + TACCTL0 = CCIE; + TACCTL1 = OUTMOD_7; + TACTL = MC_1 | ID_0 | TASSEL_2 | TACLR; +} + +void pwmSet(uint16_t v) { + TACCR1 = v; +} + ISR(TIMER0_A0, TA0_ISR) { static uint8_t cycleCnt = 0; @@ -39,7 +55,7 @@ ISR(TIMER0_A0, TA0_ISR) { float newPwm_f = ctrl.cycle(u_des, u_curr); newPwm = (uint16_t) newPwm_f; - TACCR1 = newPwm; + pwmSet(newPwm); } } @@ -75,16 +91,3 @@ void setUDes(float uDes) { } - -void pwmInit() { - P1DIR |= BIT6; - P1SEL |= BIT6; - P1OUT = 0; - - TACCR0 = PWM_MAX; - TACCR1 = 8; - TACCTL0 = CCIE; - TACCTL1 = OUTMOD_7; - TACTL = MC_1 | ID_0 | TASSEL_2 | TACLR; -} -