FlexPWM driver naming adjustments.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@5652 35acf78f-673a-0410-8e92-d51de3d6d3f4
This commit is contained in:
parent
11ecb1a758
commit
51069d7c81
|
@ -179,8 +179,8 @@ void pwm_lld_start_submodule(PWMDriver *pwmp, uint8_t sid) {
|
|||
pwmp->flexpwmp->SUB[sid].VAL[1].R = pwmperiod / 2;
|
||||
|
||||
/* Sets the submodule channels.*/
|
||||
switch (pwmp->config->mode & PWM_OUTPUT_MASK) {
|
||||
case EDGE_ALIGNED_PWM:
|
||||
switch (pwmp->config->mode & PWM_ALIGN_MASK) {
|
||||
case PWM_ALIGN_EDGE:
|
||||
/* Setting reloads.*/
|
||||
pwmp->flexpwmp->SUB[sid].CTRL.B.HALF = 0;
|
||||
pwmp->flexpwmp->SUB[sid].CTRL.B.FULL = 1;
|
||||
|
@ -189,7 +189,7 @@ void pwm_lld_start_submodule(PWMDriver *pwmp, uint8_t sid) {
|
|||
pwmp->flexpwmp->SUB[sid].VAL[2].R = ~(pwmperiod / 2) + 1U;
|
||||
pwmp->flexpwmp->SUB[sid].VAL[4].R = ~(pwmperiod / 2) + 1U;
|
||||
break;
|
||||
case CENTER_ALIGNED_PWM:
|
||||
case PWM_ALIGN_CENTER:
|
||||
/* Setting reloads.*/
|
||||
pwmp->flexpwmp->SUB[sid].CTRL.B.HALF = 1;
|
||||
pwmp->flexpwmp->SUB[sid].CTRL.B.FULL = 0;
|
||||
|
@ -332,14 +332,14 @@ void pwm_lld_enable_submodule_channel(PWMDriver *pwmp,
|
|||
}
|
||||
|
||||
/* Sets the channel width.*/
|
||||
switch (pwmp->config->mode & PWM_OUTPUT_MASK) {
|
||||
case EDGE_ALIGNED_PWM:
|
||||
switch (pwmp->config->mode & PWM_ALIGN_MASK) {
|
||||
case PWM_ALIGN_EDGE:
|
||||
if (nwidth >= 0)
|
||||
pwmp->flexpwmp->SUB[sid].VAL[3].R = nwidth;
|
||||
else
|
||||
pwmp->flexpwmp->SUB[sid].VAL[3].R = ~((pwmperiod / 2) - width) + 1U;
|
||||
break;
|
||||
case CENTER_ALIGNED_PWM:
|
||||
case PWM_ALIGN_CENTER:
|
||||
pwmp->flexpwmp->SUB[sid].VAL[3].R = width / 2;
|
||||
pwmp->flexpwmp->SUB[sid].VAL[2].R = ~(width / 2) + 1U;
|
||||
break;
|
||||
|
@ -363,14 +363,14 @@ void pwm_lld_enable_submodule_channel(PWMDriver *pwmp,
|
|||
}
|
||||
}
|
||||
/* Sets the channel width.*/
|
||||
switch (pwmp->config->mode & PWM_OUTPUT_MASK) {
|
||||
case EDGE_ALIGNED_PWM:
|
||||
switch (pwmp->config->mode & PWM_ALIGN_MASK) {
|
||||
case PWM_ALIGN_EDGE:
|
||||
if (nwidth >= 0)
|
||||
pwmp->flexpwmp->SUB[sid].VAL[5].R = nwidth;
|
||||
else
|
||||
pwmp->flexpwmp->SUB[sid].VAL[5].R = ~((pwmperiod / 2) - width) + 1U;
|
||||
break;
|
||||
case CENTER_ALIGNED_PWM:
|
||||
case PWM_ALIGN_CENTER:
|
||||
pwmp->flexpwmp->SUB[sid].VAL[5].R = width / 2;
|
||||
pwmp->flexpwmp->SUB[sid].VAL[4].R = ~(width / 2) + 1U;
|
||||
break;
|
||||
|
@ -1609,9 +1609,8 @@ void pwm_lld_change_period(PWMDriver *pwmp, pwmcnt_t period) {
|
|||
pwmp->flexpwmp->SUB[0].VAL[0].R = 0;
|
||||
pwmp->flexpwmp->SUB[0].VAL[1].R = pwmperiod / 2;
|
||||
|
||||
switch (pwmp->config->mode & PWM_OUTPUT_MASK) {
|
||||
case EDGE_ALIGNED_PWM:
|
||||
|
||||
switch (pwmp->config->mode & PWM_ALIGN_MASK) {
|
||||
case PWM_ALIGN_EDGE:
|
||||
/* Setting active front of PWM channels.*/
|
||||
pwmp->flexpwmp->SUB[0].VAL[2].R = ~(pwmperiod / 2) + 1U;
|
||||
pwmp->flexpwmp->SUB[0].VAL[4].R = ~(pwmperiod / 2) + 1U;
|
||||
|
@ -1631,8 +1630,8 @@ void pwm_lld_change_period(PWMDriver *pwmp, pwmcnt_t period) {
|
|||
pwmp->flexpwmp->SUB[1].VAL[0].R = 0;
|
||||
pwmp->flexpwmp->SUB[1].VAL[1].R = pwmperiod / 2;
|
||||
|
||||
switch (pwmp->config->mode & PWM_OUTPUT_MASK) {
|
||||
case EDGE_ALIGNED_PWM:
|
||||
switch (pwmp->config->mode & PWM_ALIGN_MASK) {
|
||||
case PWM_ALIGN_EDGE:
|
||||
|
||||
/* Setting active front of PWM channels.*/
|
||||
pwmp->flexpwmp->SUB[1].VAL[2].R = ~(pwmperiod / 2) + 1U;
|
||||
|
@ -1653,9 +1652,8 @@ void pwm_lld_change_period(PWMDriver *pwmp, pwmcnt_t period) {
|
|||
pwmp->flexpwmp->SUB[2].VAL[0].R = 0;
|
||||
pwmp->flexpwmp->SUB[2].VAL[1].R = pwmperiod / 2;
|
||||
|
||||
switch (pwmp->config->mode & PWM_OUTPUT_MASK) {
|
||||
case EDGE_ALIGNED_PWM:
|
||||
|
||||
switch (pwmp->config->mode & PWM_ALIGN_MASK) {
|
||||
case PWM_ALIGN_EDGE:
|
||||
/* Setting active front of PWM channels.*/
|
||||
pwmp->flexpwmp->SUB[2].VAL[2].R = ~(pwmperiod / 2) + 1U;
|
||||
pwmp->flexpwmp->SUB[2].VAL[4].R = ~(pwmperiod / 2) + 1U;
|
||||
|
@ -1675,8 +1673,8 @@ void pwm_lld_change_period(PWMDriver *pwmp, pwmcnt_t period) {
|
|||
pwmp->flexpwmp->SUB[3].VAL[0].R = 0;
|
||||
pwmp->flexpwmp->SUB[3].VAL[1].R = pwmperiod / 2;
|
||||
|
||||
switch (pwmp->config->mode & PWM_OUTPUT_MASK) {
|
||||
case EDGE_ALIGNED_PWM:
|
||||
switch (pwmp->config->mode & PWM_ALIGN_MASK) {
|
||||
case PWM_ALIGN_EDGE:
|
||||
/* Setting active front of PWM channels.*/
|
||||
pwmp->flexpwmp->SUB[3].VAL[2].R = ~(pwmperiod / 2) + 1U;
|
||||
pwmp->flexpwmp->SUB[3].VAL[4].R = ~(pwmperiod / 2) + 1U;
|
||||
|
@ -1696,8 +1694,8 @@ void pwm_lld_change_period(PWMDriver *pwmp, pwmcnt_t period) {
|
|||
pwmp->flexpwmp->SUB[0].VAL[0].R = 0;
|
||||
pwmp->flexpwmp->SUB[0].VAL[1].R = pwmperiod / 2;
|
||||
|
||||
switch (pwmp->config->mode & PWM_OUTPUT_MASK) {
|
||||
case EDGE_ALIGNED_PWM:
|
||||
switch (pwmp->config->mode & PWM_ALIGN_MASK) {
|
||||
case PWM_ALIGN_EDGE:
|
||||
/* Setting active front of PWM channels.*/
|
||||
pwmp->flexpwmp->SUB[0].VAL[2].R = ~(pwmperiod / 2) + 1U;
|
||||
pwmp->flexpwmp->SUB[0].VAL[4].R = ~(pwmperiod / 2) + 1U;
|
||||
|
@ -1717,8 +1715,8 @@ void pwm_lld_change_period(PWMDriver *pwmp, pwmcnt_t period) {
|
|||
pwmp->flexpwmp->SUB[1].VAL[0].R = 0;
|
||||
pwmp->flexpwmp->SUB[1].VAL[1].R = pwmperiod / 2;
|
||||
|
||||
switch (pwmp->config->mode & PWM_OUTPUT_MASK) {
|
||||
case EDGE_ALIGNED_PWM:
|
||||
switch (pwmp->config->mode & PWM_ALIGN_MASK) {
|
||||
case PWM_ALIGN_EDGE:
|
||||
/* Setting active front of PWM channels.*/
|
||||
pwmp->flexpwmp->SUB[1].VAL[2].R = ~(pwmperiod / 2) + 1U;
|
||||
pwmp->flexpwmp->SUB[1].VAL[4].R = ~(pwmperiod / 2) + 1U;
|
||||
|
@ -1738,8 +1736,8 @@ void pwm_lld_change_period(PWMDriver *pwmp, pwmcnt_t period) {
|
|||
pwmp->flexpwmp->SUB[2].VAL[0].R = 0;
|
||||
pwmp->flexpwmp->SUB[2].VAL[1].R = pwmperiod / 2;
|
||||
|
||||
switch (pwmp->config->mode & PWM_OUTPUT_MASK) {
|
||||
case EDGE_ALIGNED_PWM:
|
||||
switch (pwmp->config->mode & PWM_ALIGN_MASK) {
|
||||
case PWM_ALIGN_EDGE:
|
||||
/* Setting active front of PWM channels.*/
|
||||
pwmp->flexpwmp->SUB[2].VAL[2].R = ~(pwmperiod / 2) + 1U;
|
||||
pwmp->flexpwmp->SUB[2].VAL[4].R = ~(pwmperiod / 2) + 1U;
|
||||
|
@ -1759,8 +1757,8 @@ void pwm_lld_change_period(PWMDriver *pwmp, pwmcnt_t period) {
|
|||
pwmp->flexpwmp->SUB[3].VAL[0].R = 0;
|
||||
pwmp->flexpwmp->SUB[3].VAL[1].R = pwmperiod / 2;
|
||||
|
||||
switch (pwmp->config->mode & PWM_OUTPUT_MASK) {
|
||||
case EDGE_ALIGNED_PWM:
|
||||
switch (pwmp->config->mode & PWM_ALIGN_MASK) {
|
||||
case PWM_ALIGN_EDGE:
|
||||
/* Setting active front of PWM channels.*/
|
||||
pwmp->flexpwmp->SUB[3].VAL[2].R = ~(pwmperiod / 2) + 1U;
|
||||
pwmp->flexpwmp->SUB[3].VAL[4].R = ~(pwmperiod / 2) + 1U;
|
||||
|
|
|
@ -93,17 +93,23 @@
|
|||
*/
|
||||
#define PWM_COMPLEMENTARY_OUTPUT_ACTIVE_LOW 0x20
|
||||
|
||||
/**
|
||||
* @brief Alignment mode mask.
|
||||
* @note This is an SPC5-specific setting.
|
||||
*/
|
||||
#define PWM_ALIGN_MASK 0x01
|
||||
|
||||
/**
|
||||
* @brief Edge-Aligned PWM functional mode.
|
||||
* @note This is an SPC5-specific setting.
|
||||
*/
|
||||
#define EDGE_ALIGNED_PWM 0x01
|
||||
#define PWM_ALIGN_EDGE 0x00
|
||||
|
||||
/**
|
||||
* @brief Center-Aligned PWM functional mode.
|
||||
* @note This is an SPC5-specific setting.
|
||||
*/
|
||||
#define CENTER_ALIGNED_PWM 0x02
|
||||
#define PWM_ALIGN_CENTER 0x01
|
||||
|
||||
/*===========================================================================*/
|
||||
/* Driver pre-compile time settings. */
|
||||
|
|
|
@ -37,7 +37,7 @@ static PWMConfig pwmcfg = {
|
|||
{PWM_OUTPUT_ACTIVE_HIGH, pwmc1cb},
|
||||
{PWM_OUTPUT_DISABLED, NULL}
|
||||
},
|
||||
EDGE_ALIGNED_PWM
|
||||
PWM_ALIGN_EDGE
|
||||
};
|
||||
|
||||
icucnt_t last_width, last_period;
|
||||
|
|
|
@ -37,7 +37,7 @@ static PWMConfig pwmcfg = {
|
|||
{PWM_OUTPUT_ACTIVE_HIGH, pwmc1cb},
|
||||
{PWM_OUTPUT_DISABLED, NULL}
|
||||
},
|
||||
EDGE_ALIGNED_PWM
|
||||
PWM_ALIGN_EDGE
|
||||
};
|
||||
|
||||
icucnt_t last_width, last_period;
|
||||
|
|
Loading…
Reference in New Issue