mirror of https://github.com/ARMmbed/mbed-os.git
pwmout - TMPM46B - add read methods for period and pulsewidth
parent
067431e088
commit
7388ff8b43
|
|
@ -80,7 +80,7 @@ void pwmout_free(pwmout_t *obj)
|
|||
{
|
||||
// Stops and clear count operation
|
||||
TMRB_SetRunState(obj->channel, TMRB_STOP);
|
||||
pwmout_write(obj,0);
|
||||
pwmout_write(obj, 0);
|
||||
obj->channel = NULL;
|
||||
obj->trailing_timing = 0;
|
||||
obj->leading_timing = 0;
|
||||
|
|
@ -169,7 +169,7 @@ void pwmout_period_us(pwmout_t *obj, int us)
|
|||
// Restore the duty-cycle
|
||||
duty_cycle = (float)((obj->trailing_timing - obj->leading_timing) / obj->trailing_timing);
|
||||
obj->trailing_timing = cycles;
|
||||
obj->leading_timing = ((cycles)- (uint16_t)(cycles * duty_cycle));
|
||||
obj->leading_timing = ((cycles) - (uint16_t)(cycles * duty_cycle));
|
||||
|
||||
// Change the source clock division and period
|
||||
m_tmrb.Mode = TMRB_INTERVAL_TIMER;
|
||||
|
|
@ -192,6 +192,11 @@ void pwmout_period_us(pwmout_t *obj, int us)
|
|||
TMRB_SetRunState(obj->channel, TMRB_RUN);
|
||||
}
|
||||
|
||||
int pwmout_read_period_us(pwmout_t *obj)
|
||||
{
|
||||
return obj->trailing_timing;
|
||||
}
|
||||
|
||||
void pwmout_pulsewidth(pwmout_t *obj, float seconds)
|
||||
{
|
||||
pwmout_pulsewidth_us(obj, (seconds * 1000000.0f));
|
||||
|
|
@ -212,6 +217,11 @@ void pwmout_pulsewidth_us(pwmout_t *obj, int us)
|
|||
pwmout_write(obj, value);
|
||||
}
|
||||
|
||||
int pwmout_read_pulsewidth_us(pwmout_t *obj)
|
||||
{
|
||||
return obj->trailing_timing - obj->leading_timing;
|
||||
}
|
||||
|
||||
const PinMap *pwmout_pinmap()
|
||||
{
|
||||
return PinMap_PWM;
|
||||
|
|
|
|||
Loading…
Reference in New Issue