From 7388ff8b43b6f2a957626044400f13140452bdff Mon Sep 17 00:00:00 2001 From: talorion Date: Tue, 25 Aug 2020 23:47:25 +0200 Subject: [PATCH] pwmout - TMPM46B - add read methods for period and pulsewidth --- targets/TARGET_TOSHIBA/TARGET_TMPM46B/pwmout_api.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/targets/TARGET_TOSHIBA/TARGET_TMPM46B/pwmout_api.c b/targets/TARGET_TOSHIBA/TARGET_TMPM46B/pwmout_api.c index d68254a7ca..035e8eecf2 100644 --- a/targets/TARGET_TOSHIBA/TARGET_TMPM46B/pwmout_api.c +++ b/targets/TARGET_TOSHIBA/TARGET_TMPM46B/pwmout_api.c @@ -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;