pwmout - GD32F30X - add read methods for period and pulsewidth

pull/13492/head
talorion 2020-08-25 23:41:20 +02:00 committed by Gregor Mayramhof
parent 659bd2098d
commit a67e8d1c07
1 changed files with 33 additions and 0 deletions

View File

@ -249,6 +249,11 @@ void pwmout_period_us(pwmout_t *obj, int us)
timer_enable(obj->pwm);
}
int pwmout_read_period_us(pwmout_t *obj)
{
return TIMER_CAR(obj->pwm);
}
void pwmout_pulsewidth(pwmout_t *obj, float seconds)
{
pwmout_pulsewidth_us(obj, seconds * 1000000.0f);
@ -298,6 +303,34 @@ static uint32_t timer_get_clock(uint32_t timer_periph)
return timerclk;
}
int pwmout_read_pulsewidth_us(pwmout_t *obj)
{
uint16_t pulse = 0;
switch (obj->ch) {
case TIMER_CH_0:
pulse = TIMER_CH0CV(obj->pwm);
break;
case TIMER_CH_1:
pulse = TIMER_CH1CV(obj->pwm);
break;
case TIMER_CH_2:
pulse = TIMER_CH2CV(obj->pwm);
break;
case TIMER_CH_3:
pulse = TIMER_CH3CV(obj->pwm);
break;
default:
error("Error: pwm channel error! \r\n");
}
return pulse;
}
const PinMap *pwmout_pinmap()
{
return PinMap_PWM;