/*############################################################# Program Name : ex2_PWM_multiple Author : Grant Phillips Date Modified : 13/01/2016 Compiler : ARMmbed Tested On : STM32F4-Discovery Description : Example program that demonstrates the use of multiple PWM outputs. Each PWM output will individually be ramped up from 0 to 100%. The signals will be 25% out of phase for demon- stration purposes. Requirements : * STM32F4-Discovery Board Circuit : * LEDs connected to PB5, PB1 and PB0 * Connect the PWM outputs to an oscilloscope to observe the effects of the PWM outputs graphically ##############################################################*/ #include "mbed.h" PwmOut greenled(PB_0); PwmOut blueled(PB_1); PwmOut redled(PB_5); //default period for all the leds will be 20ms (0.02s) int main() { double greenduty=0.0, blueduty=0.25, redduty=0.5; //variables for storing each led's duty cycle //the ARM mbed compiler prefers using double variables than float while(1) { greenduty = greenduty + 0.05; //increment duty cycle variable if(greenduty > 1.0) //reset duty cycle variable when it reaches 1.0 greenduty = 0.0; greenled = greenduty; //write duty cycle value to led blueduty = blueduty + 0.05; if(blueduty > 1.0) blueduty = 0.0; blueled = blueduty; redduty = redduty + 0.05; if(redduty > 1.0) redduty = 0.0; redled = redduty; wait(0.05); } }