@@ -80,7 +80,7 @@ void pwmout_free(pwmout_t *obj)
8080{
8181 // Stops and clear count operation
8282 TMRB_SetRunState (obj -> channel , TMRB_STOP );
83- pwmout_write (obj ,0 );
83+ pwmout_write (obj , 0 );
8484 obj -> channel = NULL ;
8585 obj -> trailing_timing = 0 ;
8686 obj -> leading_timing = 0 ;
@@ -169,7 +169,7 @@ void pwmout_period_us(pwmout_t *obj, int us)
169169 // Restore the duty-cycle
170170 duty_cycle = (float )((obj -> trailing_timing - obj -> leading_timing ) / obj -> trailing_timing );
171171 obj -> trailing_timing = cycles ;
172- obj -> leading_timing = ((cycles )- (uint16_t )(cycles * duty_cycle ));
172+ obj -> leading_timing = ((cycles ) - (uint16_t )(cycles * duty_cycle ));
173173
174174 // Change the source clock division and period
175175 m_tmrb .Mode = TMRB_INTERVAL_TIMER ;
@@ -192,6 +192,11 @@ void pwmout_period_us(pwmout_t *obj, int us)
192192 TMRB_SetRunState (obj -> channel , TMRB_RUN );
193193}
194194
195+ int pwmout_read_period_us (pwmout_t * obj )
196+ {
197+ return obj -> trailing_timing ;
198+ }
199+
195200void pwmout_pulsewidth (pwmout_t * obj , float seconds )
196201{
197202 pwmout_pulsewidth_us (obj , (seconds * 1000000.0f ));
@@ -212,6 +217,11 @@ void pwmout_pulsewidth_us(pwmout_t *obj, int us)
212217 pwmout_write (obj , value );
213218}
214219
220+ int pwmout_read_pulsewidth_us (pwmout_t * obj )
221+ {
222+ return obj -> trailing_timing - obj -> leading_timing ;
223+ }
224+
215225const PinMap * pwmout_pinmap ()
216226{
217227 return PinMap_PWM ;
0 commit comments