Private
Public Access
2
0

pwm: add config_ms and config_percent.

* Allows user to set both at the same time. Will reset to previous if
* period for duty cycle fails to write

Signed-off-by: Thomas Ingleby <thomas.c.ingleby@intel.com>
This commit is contained in:
Mark Ceisel
2014-09-01 12:18:01 +01:00
committed by Thomas Ingleby
parent a8bbd55562
commit 9cf6cad45a
3 changed files with 89 additions and 0 deletions

View File

@@ -166,6 +166,26 @@ mraa_result_t mraa_pwm_owner(mraa_pwm_context dev, mraa_boolean_t owner);
*/
mraa_result_t mraa_pwm_close(mraa_pwm_context dev);
/**
* Set Both Period and DutyCycle on a PWM context
*
* @param dev The pwm context to use
* @param period represented in ms.
* @param duty dutycycle of the pwm signal.
* @return Result of operation
*/
mraa_result_t mraa_pwm_config_ms(mraa_pwm_context dev, int period, float duty);
/**
* Set Both Period and DutyCycle on a PWM context. Duty represented as percentage.
*
* @param dev The pwm context to use
* @param period represented in ms.
* @param duty duty percantage. i.e. 50% = 0.5f
* @return Result of operation
*/
mraa_result_t mraa_pwm_config_percent(mraa_pwm_context dev, int period, float duty);
#ifdef __cplusplus
}
#endif

View File

@@ -150,6 +150,27 @@ class Pwm {
else
return mraa_pwm_enable(m_pwm, 0);
}
/**
* Set the period and duty of a PWM object.
*
* @param period represented in ms.
* @param duty represnted in ms as float.
* @return Result of operation
*/
mraa_result_t config_ms(int period, float duty) {
return mraa_pwm_config_ms(m_pwm, period, duty);
}
/**
* Set the period and duty (percent) of a PWM object.
*
* @param period as represented in ms.
* @param duty percentage i.e. 50% = 0.5f
* @return Result of operation
*/
mraa_result_t config_percent(int period, float duty) {
return mraa_pwm_config_percent(m_pwm, period, duty);
}
private:
mraa_pwm_context m_pwm;
};