cpu/samd21: don't hard-code number of channels
Each TCC can have 8 PWM channels, so don't hard-code 3 channels/TCC.
This commit is contained in:
parent
70a558059e
commit
da89f6ac5f
@ -84,7 +84,8 @@ typedef struct {
|
|||||||
*/
|
*/
|
||||||
typedef struct {
|
typedef struct {
|
||||||
Tcc *dev; /**< TCC device to use */
|
Tcc *dev; /**< TCC device to use */
|
||||||
pwm_conf_chan_t chan[3]; /**< channel configuration */
|
const pwm_conf_chan_t *chan;/**< channel configuration */
|
||||||
|
const uint8_t chan_numof; /**< number of channels */
|
||||||
} pwm_conf_t;
|
} pwm_conf_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -151,7 +151,7 @@ uint32_t pwm_init(pwm_t dev, pwm_mode_t mode, uint32_t freq, uint16_t res)
|
|||||||
f_real = (CLOCK_CORECLOCK / (scale * res));
|
f_real = (CLOCK_CORECLOCK / (scale * res));
|
||||||
|
|
||||||
/* configure the used pins */
|
/* configure the used pins */
|
||||||
for (unsigned i = 0; i < PWM_MAX_CHANNELS; i++) {
|
for (unsigned i = 0; i < pwm_config[dev].chan_numof; i++) {
|
||||||
if (pwm_config[dev].chan[i].pin != GPIO_UNDEF) {
|
if (pwm_config[dev].chan[i].pin != GPIO_UNDEF) {
|
||||||
gpio_init(pwm_config[dev].chan[i].pin, GPIO_OUT);
|
gpio_init(pwm_config[dev].chan[i].pin, GPIO_OUT);
|
||||||
gpio_init_mux(pwm_config[dev].chan[i].pin, pwm_config[dev].chan[i].mux);
|
gpio_init_mux(pwm_config[dev].chan[i].pin, pwm_config[dev].chan[i].mux);
|
||||||
@ -195,12 +195,12 @@ uint32_t pwm_init(pwm_t dev, pwm_mode_t mode, uint32_t freq, uint16_t res)
|
|||||||
|
|
||||||
uint8_t pwm_channels(pwm_t dev)
|
uint8_t pwm_channels(pwm_t dev)
|
||||||
{
|
{
|
||||||
return ARRAY_SIZE(pwm_config[dev].chan);
|
return pwm_config[dev].chan_numof;
|
||||||
}
|
}
|
||||||
|
|
||||||
void pwm_set(pwm_t dev, uint8_t channel, uint16_t value)
|
void pwm_set(pwm_t dev, uint8_t channel, uint16_t value)
|
||||||
{
|
{
|
||||||
if ((channel >= PWM_MAX_CHANNELS) ||
|
if ((channel >= pwm_config[dev].chan_numof) ||
|
||||||
(pwm_config[dev].chan[channel].pin == GPIO_UNDEF)) {
|
(pwm_config[dev].chan[channel].pin == GPIO_UNDEF)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user