Sam Ewins / Mbed 2 deprecated Sound_Meter

Dependencies:   elec350 mbed

Committer:
sewins
Date:
Wed Nov 04 21:47:34 2015 +0000
Revision:
0:cff19fd9a3be
Published beginnings of PWM expansion

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sewins 0:cff19fd9a3be 1 #include "soft_pwm.h"
sewins 0:cff19fd9a3be 2
sewins 0:cff19fd9a3be 3 SoftPwm::SoftPwm(float initialPeriod, float initialDutyCycle)
sewins 0:cff19fd9a3be 4 {
sewins 0:cff19fd9a3be 5 this->period = initialPeriod;
sewins 0:cff19fd9a3be 6 this->dutyCycle = initialDutyCycle;
sewins 0:cff19fd9a3be 7
sewins 0:cff19fd9a3be 8 this->timer.start();
sewins 0:cff19fd9a3be 9 }
sewins 0:cff19fd9a3be 10
sewins 0:cff19fd9a3be 11 float SoftPwm::getPeriod()
sewins 0:cff19fd9a3be 12 {
sewins 0:cff19fd9a3be 13 return this->period;
sewins 0:cff19fd9a3be 14 }
sewins 0:cff19fd9a3be 15 float SoftPwm::getDutyCycle()
sewins 0:cff19fd9a3be 16 {
sewins 0:cff19fd9a3be 17 return this->dutyCycle;
sewins 0:cff19fd9a3be 18 }
sewins 0:cff19fd9a3be 19 void SoftPwm::setPeriod(float newPeriod)
sewins 0:cff19fd9a3be 20 {
sewins 0:cff19fd9a3be 21 this->period = newPeriod;
sewins 0:cff19fd9a3be 22 }
sewins 0:cff19fd9a3be 23 void SoftPwm::setDutyCycle(float newDutyCycle)
sewins 0:cff19fd9a3be 24 {
sewins 0:cff19fd9a3be 25 this->dutyCycle = newDutyCycle;
sewins 0:cff19fd9a3be 26 }
sewins 0:cff19fd9a3be 27
sewins 0:cff19fd9a3be 28 bool SoftPwm::isOn()
sewins 0:cff19fd9a3be 29 {
sewins 0:cff19fd9a3be 30 float onPhaseDuration = this->dutyCycle * this->period;
sewins 0:cff19fd9a3be 31 float currentTime = this->timer.read();
sewins 0:cff19fd9a3be 32 if (currentTime > this->period) {
sewins 0:cff19fd9a3be 33 this->timer.reset();
sewins 0:cff19fd9a3be 34 }
sewins 0:cff19fd9a3be 35 if (currentTime<onPhaseDuration) {
sewins 0:cff19fd9a3be 36 return true;
sewins 0:cff19fd9a3be 37 } else {
sewins 0:cff19fd9a3be 38 return false;
sewins 0:cff19fd9a3be 39 }
sewins 0:cff19fd9a3be 40 }