PWM

Dependencies:   mbed

Fork of 1620_App_Board_Pots by Craig Evans

Committer:
eencae
Date:
Tue Feb 28 20:00:48 2017 +0000
Revision:
1:30d1c1087477
Parent:
0:74d086537907
Initial commit.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
eencae 0:74d086537907 1 /* ELEC1620 Application Board Example
eencae 0:74d086537907 2
eencae 1:30d1c1087477 3 PWM
eencae 0:74d086537907 4
eencae 0:74d086537907 5 (c) Dr Craig A. Evans, University of Leeds, Feb 2017
eencae 0:74d086537907 6
eencae 0:74d086537907 7 */
eencae 0:74d086537907 8
eencae 0:74d086537907 9 #include "mbed.h"
eencae 0:74d086537907 10
eencae 1:30d1c1087477 11 PwmOut red_led(p24);
eencae 1:30d1c1087477 12 PwmOut green_led(p23);
eencae 1:30d1c1087477 13 PwmOut blue_led(p22);
eencae 0:74d086537907 14
eencae 1:30d1c1087477 15 int main()
eencae 1:30d1c1087477 16 {
eencae 1:30d1c1087477 17 float frequency = 100.0f; // 100 Hz
eencae 1:30d1c1087477 18 red_led.period(1.0f/frequency); // set the period of the waveform
eencae 1:30d1c1087477 19 // all PWM channels share the same period so only need to set for one
eencae 1:30d1c1087477 20
eencae 0:74d086537907 21 while(1) {
eencae 1:30d1c1087477 22
eencae 1:30d1c1087477 23 // loop through 0 to 100% duty cycle in steps of 10% for each LED
eencae 1:30d1c1087477 24
eencae 1:30d1c1087477 25 // each for loop has 10 iterations
eencae 1:30d1c1087477 26 for (float dc1 = 0.0 ; dc1 <= 1.0 ; dc1 += 0.1) {
eencae 1:30d1c1087477 27 // they are 'nested' and so we have
eencae 1:30d1c1087477 28 for (float dc2 = 0.0 ; dc2 <= 1.0 ; dc2 += 0.1) {
eencae 1:30d1c1087477 29 // 10 x 10 x 10 = 1000 iterations (colours) in total
eencae 1:30d1c1087477 30 for (float dc3 = 0.0 ; dc3 <= 1.0 ; dc3 += 0.1) {
eencae 1:30d1c1087477 31
eencae 1:30d1c1087477 32 red_led.write(dc1); // fade LED
eencae 1:30d1c1087477 33 green_led.write(dc2); // fade LED
eencae 1:30d1c1087477 34 blue_led.write(dc3); // fade LED
eencae 1:30d1c1087477 35
eencae 1:30d1c1087477 36 //red_led = dc1; // equivalent syntax
eencae 1:30d1c1087477 37
eencae 1:30d1c1087477 38 wait_ms(20); // small delay
eencae 1:30d1c1087477 39 }
eencae 1:30d1c1087477 40
eencae 1:30d1c1087477 41 }
eencae 1:30d1c1087477 42 }
eencae 0:74d086537907 43 }
eencae 0:74d086537907 44 }