[NUC472/M453] Fix pwmout power-down condition

pull/3918/head
ccli8 2017-03-08 13:12:40 +08:00 committed by cyliangtw
parent 4e96f8b721
commit 49a2a221a4
2 changed files with 20 additions and 12 deletions

View File

@ -99,9 +99,11 @@ void pwmout_init(pwmout_t* obj, PinName pin)
((struct nu_pwm_var *) modinit->var)->en_msk |= 1 << chn;
// Mark this module to be inited.
int i = modinit - pwm_modinit_tab;
pwm_modinit_mask |= 1 << i;
if (((struct nu_pwm_var *) modinit->var)->en_msk) {
// Mark this module to be inited.
int i = modinit - pwm_modinit_tab;
pwm_modinit_mask |= 1 << i;
}
}
void pwmout_free(pwmout_t* obj)
@ -120,9 +122,11 @@ void pwmout_free(pwmout_t* obj)
CLK_DisableModuleClock(modinit->clkidx);
}
// Mark this module to be deinited.
int i = modinit - pwm_modinit_tab;
pwm_modinit_mask &= ~(1 << i);
if (((struct nu_pwm_var *) modinit->var)->en_msk == 0) {
// Mark this module to be deinited.
int i = modinit - pwm_modinit_tab;
pwm_modinit_mask &= ~(1 << i);
}
}
void pwmout_write(pwmout_t* obj, float value)

View File

@ -105,9 +105,11 @@ void pwmout_init(pwmout_t* obj, PinName pin)
((struct nu_pwm_var *) modinit->var)->en_msk |= 1 << chn;
// Mark this module to be inited.
int i = modinit - pwm_modinit_tab;
pwm_modinit_mask |= 1 << i;
if (((struct nu_pwm_var *) modinit->var)->en_msk) {
// Mark this module to be inited.
int i = modinit - pwm_modinit_tab;
pwm_modinit_mask |= 1 << i;
}
}
void pwmout_free(pwmout_t* obj)
@ -143,9 +145,11 @@ void pwmout_free(pwmout_t* obj)
}
}
// Mark this module to be deinited.
int i = modinit - pwm_modinit_tab;
pwm_modinit_mask &= ~(1 << i);
if (((struct nu_pwm_var *) modinit->var)->en_msk == 0) {
// Mark this module to be deinited.
int i = modinit - pwm_modinit_tab;
pwm_modinit_mask &= ~(1 << i);
}
}
void pwmout_write(pwmout_t* obj, float value)