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;
|
pwmp->flexpwmp->SUB[sid].VAL[1].R = pwmperiod / 2;
|
||||||
|
|
||||||
/* Sets the submodule channels.*/
|
/* Sets the submodule channels.*/
|
||||||
switch (pwmp->config->mode & PWM_OUTPUT_MASK) {
|
switch (pwmp->config->mode & PWM_ALIGN_MASK) {
|
||||||
case EDGE_ALIGNED_PWM:
|
case PWM_ALIGN_EDGE:
|
||||||
/* Setting reloads.*/
|
/* Setting reloads.*/
|
||||||
pwmp->flexpwmp->SUB[sid].CTRL.B.HALF = 0;
|
pwmp->flexpwmp->SUB[sid].CTRL.B.HALF = 0;
|
||||||
pwmp->flexpwmp->SUB[sid].CTRL.B.FULL = 1;
|
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[2].R = ~(pwmperiod / 2) + 1U;
|
||||||
pwmp->flexpwmp->SUB[sid].VAL[4].R = ~(pwmperiod / 2) + 1U;
|
pwmp->flexpwmp->SUB[sid].VAL[4].R = ~(pwmperiod / 2) + 1U;
|
||||||
break;
|
break;
|
||||||
case CENTER_ALIGNED_PWM:
|
case PWM_ALIGN_CENTER:
|
||||||
/* Setting reloads.*/
|
/* Setting reloads.*/
|
||||||
pwmp->flexpwmp->SUB[sid].CTRL.B.HALF = 1;
|
pwmp->flexpwmp->SUB[sid].CTRL.B.HALF = 1;
|
||||||
pwmp->flexpwmp->SUB[sid].CTRL.B.FULL = 0;
|
pwmp->flexpwmp->SUB[sid].CTRL.B.FULL = 0;
|
||||||
|
@ -332,14 +332,14 @@ void pwm_lld_enable_submodule_channel(PWMDriver *pwmp,
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Sets the channel width.*/
|
/* Sets the channel width.*/
|
||||||
switch (pwmp->config->mode & PWM_OUTPUT_MASK) {
|
switch (pwmp->config->mode & PWM_ALIGN_MASK) {
|
||||||
case EDGE_ALIGNED_PWM:
|
case PWM_ALIGN_EDGE:
|
||||||
if (nwidth >= 0)
|
if (nwidth >= 0)
|
||||||
pwmp->flexpwmp->SUB[sid].VAL[3].R = nwidth;
|
pwmp->flexpwmp->SUB[sid].VAL[3].R = nwidth;
|
||||||
else
|
else
|
||||||
pwmp->flexpwmp->SUB[sid].VAL[3].R = ~((pwmperiod / 2) - width) + 1U;
|
pwmp->flexpwmp->SUB[sid].VAL[3].R = ~((pwmperiod / 2) - width) + 1U;
|
||||||
break;
|
break;
|
||||||
case CENTER_ALIGNED_PWM:
|
case PWM_ALIGN_CENTER:
|
||||||
pwmp->flexpwmp->SUB[sid].VAL[3].R = width / 2;
|
pwmp->flexpwmp->SUB[sid].VAL[3].R = width / 2;
|
||||||
pwmp->flexpwmp->SUB[sid].VAL[2].R = ~(width / 2) + 1U;
|
pwmp->flexpwmp->SUB[sid].VAL[2].R = ~(width / 2) + 1U;
|
||||||
break;
|
break;
|
||||||
|
@ -363,14 +363,14 @@ void pwm_lld_enable_submodule_channel(PWMDriver *pwmp,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* Sets the channel width.*/
|
/* Sets the channel width.*/
|
||||||
switch (pwmp->config->mode & PWM_OUTPUT_MASK) {
|
switch (pwmp->config->mode & PWM_ALIGN_MASK) {
|
||||||
case EDGE_ALIGNED_PWM:
|
case PWM_ALIGN_EDGE:
|
||||||
if (nwidth >= 0)
|
if (nwidth >= 0)
|
||||||
pwmp->flexpwmp->SUB[sid].VAL[5].R = nwidth;
|
pwmp->flexpwmp->SUB[sid].VAL[5].R = nwidth;
|
||||||
else
|
else
|
||||||
pwmp->flexpwmp->SUB[sid].VAL[5].R = ~((pwmperiod / 2) - width) + 1U;
|
pwmp->flexpwmp->SUB[sid].VAL[5].R = ~((pwmperiod / 2) - width) + 1U;
|
||||||
break;
|
break;
|
||||||
case CENTER_ALIGNED_PWM:
|
case PWM_ALIGN_CENTER:
|
||||||
pwmp->flexpwmp->SUB[sid].VAL[5].R = width / 2;
|
pwmp->flexpwmp->SUB[sid].VAL[5].R = width / 2;
|
||||||
pwmp->flexpwmp->SUB[sid].VAL[4].R = ~(width / 2) + 1U;
|
pwmp->flexpwmp->SUB[sid].VAL[4].R = ~(width / 2) + 1U;
|
||||||
break;
|
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[0].R = 0;
|
||||||
pwmp->flexpwmp->SUB[0].VAL[1].R = pwmperiod / 2;
|
pwmp->flexpwmp->SUB[0].VAL[1].R = pwmperiod / 2;
|
||||||
|
|
||||||
switch (pwmp->config->mode & PWM_OUTPUT_MASK) {
|
switch (pwmp->config->mode & PWM_ALIGN_MASK) {
|
||||||
case EDGE_ALIGNED_PWM:
|
case PWM_ALIGN_EDGE:
|
||||||
|
|
||||||
/* Setting active front of PWM channels.*/
|
/* Setting active front of PWM channels.*/
|
||||||
pwmp->flexpwmp->SUB[0].VAL[2].R = ~(pwmperiod / 2) + 1U;
|
pwmp->flexpwmp->SUB[0].VAL[2].R = ~(pwmperiod / 2) + 1U;
|
||||||
pwmp->flexpwmp->SUB[0].VAL[4].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[0].R = 0;
|
||||||
pwmp->flexpwmp->SUB[1].VAL[1].R = pwmperiod / 2;
|
pwmp->flexpwmp->SUB[1].VAL[1].R = pwmperiod / 2;
|
||||||
|
|
||||||
switch (pwmp->config->mode & PWM_OUTPUT_MASK) {
|
switch (pwmp->config->mode & PWM_ALIGN_MASK) {
|
||||||
case EDGE_ALIGNED_PWM:
|
case PWM_ALIGN_EDGE:
|
||||||
|
|
||||||
/* Setting active front of PWM channels.*/
|
/* Setting active front of PWM channels.*/
|
||||||
pwmp->flexpwmp->SUB[1].VAL[2].R = ~(pwmperiod / 2) + 1U;
|
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[0].R = 0;
|
||||||
pwmp->flexpwmp->SUB[2].VAL[1].R = pwmperiod / 2;
|
pwmp->flexpwmp->SUB[2].VAL[1].R = pwmperiod / 2;
|
||||||
|
|
||||||
switch (pwmp->config->mode & PWM_OUTPUT_MASK) {
|
switch (pwmp->config->mode & PWM_ALIGN_MASK) {
|
||||||
case EDGE_ALIGNED_PWM:
|
case PWM_ALIGN_EDGE:
|
||||||
|
|
||||||
/* Setting active front of PWM channels.*/
|
/* Setting active front of PWM channels.*/
|
||||||
pwmp->flexpwmp->SUB[2].VAL[2].R = ~(pwmperiod / 2) + 1U;
|
pwmp->flexpwmp->SUB[2].VAL[2].R = ~(pwmperiod / 2) + 1U;
|
||||||
pwmp->flexpwmp->SUB[2].VAL[4].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[0].R = 0;
|
||||||
pwmp->flexpwmp->SUB[3].VAL[1].R = pwmperiod / 2;
|
pwmp->flexpwmp->SUB[3].VAL[1].R = pwmperiod / 2;
|
||||||
|
|
||||||
switch (pwmp->config->mode & PWM_OUTPUT_MASK) {
|
switch (pwmp->config->mode & PWM_ALIGN_MASK) {
|
||||||
case EDGE_ALIGNED_PWM:
|
case PWM_ALIGN_EDGE:
|
||||||
/* Setting active front of PWM channels.*/
|
/* Setting active front of PWM channels.*/
|
||||||
pwmp->flexpwmp->SUB[3].VAL[2].R = ~(pwmperiod / 2) + 1U;
|
pwmp->flexpwmp->SUB[3].VAL[2].R = ~(pwmperiod / 2) + 1U;
|
||||||
pwmp->flexpwmp->SUB[3].VAL[4].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[0].R = 0;
|
||||||
pwmp->flexpwmp->SUB[0].VAL[1].R = pwmperiod / 2;
|
pwmp->flexpwmp->SUB[0].VAL[1].R = pwmperiod / 2;
|
||||||
|
|
||||||
switch (pwmp->config->mode & PWM_OUTPUT_MASK) {
|
switch (pwmp->config->mode & PWM_ALIGN_MASK) {
|
||||||
case EDGE_ALIGNED_PWM:
|
case PWM_ALIGN_EDGE:
|
||||||
/* Setting active front of PWM channels.*/
|
/* Setting active front of PWM channels.*/
|
||||||
pwmp->flexpwmp->SUB[0].VAL[2].R = ~(pwmperiod / 2) + 1U;
|
pwmp->flexpwmp->SUB[0].VAL[2].R = ~(pwmperiod / 2) + 1U;
|
||||||
pwmp->flexpwmp->SUB[0].VAL[4].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[0].R = 0;
|
||||||
pwmp->flexpwmp->SUB[1].VAL[1].R = pwmperiod / 2;
|
pwmp->flexpwmp->SUB[1].VAL[1].R = pwmperiod / 2;
|
||||||
|
|
||||||
switch (pwmp->config->mode & PWM_OUTPUT_MASK) {
|
switch (pwmp->config->mode & PWM_ALIGN_MASK) {
|
||||||
case EDGE_ALIGNED_PWM:
|
case PWM_ALIGN_EDGE:
|
||||||
/* Setting active front of PWM channels.*/
|
/* Setting active front of PWM channels.*/
|
||||||
pwmp->flexpwmp->SUB[1].VAL[2].R = ~(pwmperiod / 2) + 1U;
|
pwmp->flexpwmp->SUB[1].VAL[2].R = ~(pwmperiod / 2) + 1U;
|
||||||
pwmp->flexpwmp->SUB[1].VAL[4].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[0].R = 0;
|
||||||
pwmp->flexpwmp->SUB[2].VAL[1].R = pwmperiod / 2;
|
pwmp->flexpwmp->SUB[2].VAL[1].R = pwmperiod / 2;
|
||||||
|
|
||||||
switch (pwmp->config->mode & PWM_OUTPUT_MASK) {
|
switch (pwmp->config->mode & PWM_ALIGN_MASK) {
|
||||||
case EDGE_ALIGNED_PWM:
|
case PWM_ALIGN_EDGE:
|
||||||
/* Setting active front of PWM channels.*/
|
/* Setting active front of PWM channels.*/
|
||||||
pwmp->flexpwmp->SUB[2].VAL[2].R = ~(pwmperiod / 2) + 1U;
|
pwmp->flexpwmp->SUB[2].VAL[2].R = ~(pwmperiod / 2) + 1U;
|
||||||
pwmp->flexpwmp->SUB[2].VAL[4].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[0].R = 0;
|
||||||
pwmp->flexpwmp->SUB[3].VAL[1].R = pwmperiod / 2;
|
pwmp->flexpwmp->SUB[3].VAL[1].R = pwmperiod / 2;
|
||||||
|
|
||||||
switch (pwmp->config->mode & PWM_OUTPUT_MASK) {
|
switch (pwmp->config->mode & PWM_ALIGN_MASK) {
|
||||||
case EDGE_ALIGNED_PWM:
|
case PWM_ALIGN_EDGE:
|
||||||
/* Setting active front of PWM channels.*/
|
/* Setting active front of PWM channels.*/
|
||||||
pwmp->flexpwmp->SUB[3].VAL[2].R = ~(pwmperiod / 2) + 1U;
|
pwmp->flexpwmp->SUB[3].VAL[2].R = ~(pwmperiod / 2) + 1U;
|
||||||
pwmp->flexpwmp->SUB[3].VAL[4].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
|
#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.
|
* @brief Edge-Aligned PWM functional mode.
|
||||||
* @note This is an SPC5-specific setting.
|
* @note This is an SPC5-specific setting.
|
||||||
*/
|
*/
|
||||||
#define EDGE_ALIGNED_PWM 0x01
|
#define PWM_ALIGN_EDGE 0x00
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Center-Aligned PWM functional mode.
|
* @brief Center-Aligned PWM functional mode.
|
||||||
* @note This is an SPC5-specific setting.
|
* @note This is an SPC5-specific setting.
|
||||||
*/
|
*/
|
||||||
#define CENTER_ALIGNED_PWM 0x02
|
#define PWM_ALIGN_CENTER 0x01
|
||||||
|
|
||||||
/*===========================================================================*/
|
/*===========================================================================*/
|
||||||
/* Driver pre-compile time settings. */
|
/* Driver pre-compile time settings. */
|
||||||
|
|
|
@ -37,7 +37,7 @@ static PWMConfig pwmcfg = {
|
||||||
{PWM_OUTPUT_ACTIVE_HIGH, pwmc1cb},
|
{PWM_OUTPUT_ACTIVE_HIGH, pwmc1cb},
|
||||||
{PWM_OUTPUT_DISABLED, NULL}
|
{PWM_OUTPUT_DISABLED, NULL}
|
||||||
},
|
},
|
||||||
EDGE_ALIGNED_PWM
|
PWM_ALIGN_EDGE
|
||||||
};
|
};
|
||||||
|
|
||||||
icucnt_t last_width, last_period;
|
icucnt_t last_width, last_period;
|
||||||
|
|
|
@ -37,7 +37,7 @@ static PWMConfig pwmcfg = {
|
||||||
{PWM_OUTPUT_ACTIVE_HIGH, pwmc1cb},
|
{PWM_OUTPUT_ACTIVE_HIGH, pwmc1cb},
|
||||||
{PWM_OUTPUT_DISABLED, NULL}
|
{PWM_OUTPUT_DISABLED, NULL}
|
||||||
},
|
},
|
||||||
EDGE_ALIGNED_PWM
|
PWM_ALIGN_EDGE
|
||||||
};
|
};
|
||||||
|
|
||||||
icucnt_t last_width, last_period;
|
icucnt_t last_width, last_period;
|
||||||
|
|
Loading…
Reference in New Issue