Cameron Causer
/
4180_L1_P3_RGBLedDimmer
Dimmer code for RGB LED
main.cpp@0:17f02642d413, 2018-10-16 (annotated)
- Committer:
- kzar
- Date:
- Tue Oct 16 18:52:58 2018 +0000
- Revision:
- 0:17f02642d413
Dimmer code for RGB LED
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
kzar | 0:17f02642d413 | 1 | #include "mbed.h" |
kzar | 0:17f02642d413 | 2 | #include "PinDetect.h" |
kzar | 0:17f02642d413 | 3 | |
kzar | 0:17f02642d413 | 4 | //Init leds using PwmOut |
kzar | 0:17f02642d413 | 5 | PwmOut red(p26); |
kzar | 0:17f02642d413 | 6 | PwmOut green(p25); |
kzar | 0:17f02642d413 | 7 | PwmOut blue(p24); |
kzar | 0:17f02642d413 | 8 | //Init pushbuttons using PinDetect |
kzar | 0:17f02642d413 | 9 | PinDetect pb1(p21); |
kzar | 0:17f02642d413 | 10 | PinDetect pb2(p22); |
kzar | 0:17f02642d413 | 11 | //Init dip switches using DigitalIn |
kzar | 0:17f02642d413 | 12 | DigitalIn dip1(p15); |
kzar | 0:17f02642d413 | 13 | DigitalIn dip2(p16); |
kzar | 0:17f02642d413 | 14 | DigitalIn dip3(p17); |
kzar | 0:17f02642d413 | 15 | |
kzar | 0:17f02642d413 | 16 | |
kzar | 0:17f02642d413 | 17 | //Increment or decrement the led depending on which button was pressed |
kzar | 0:17f02642d413 | 18 | void pb1_pressed(void) { |
kzar | 0:17f02642d413 | 19 | if (dip1 == 1 && red < 1) { red = red + .1; } |
kzar | 0:17f02642d413 | 20 | if (dip2 == 1 && green < 1) { green = green + .1; } |
kzar | 0:17f02642d413 | 21 | if (dip3 == 1 && blue < 1) { blue = blue + .1; } |
kzar | 0:17f02642d413 | 22 | } |
kzar | 0:17f02642d413 | 23 | void pb2_pressed(void) { |
kzar | 0:17f02642d413 | 24 | if (dip1 == 1 && red > 0) { red = red - .1; } |
kzar | 0:17f02642d413 | 25 | if (dip2 == 1 && green > 0) { green = green - .1; } |
kzar | 0:17f02642d413 | 26 | if (dip3 == 1 && blue > 0) { blue = blue - .1; } |
kzar | 0:17f02642d413 | 27 | } |
kzar | 0:17f02642d413 | 28 | |
kzar | 0:17f02642d413 | 29 | int main() { |
kzar | 0:17f02642d413 | 30 | //Set buttons internal pullup |
kzar | 0:17f02642d413 | 31 | pb1.mode(PullUp); |
kzar | 0:17f02642d413 | 32 | pb2.mode(PullUp); |
kzar | 0:17f02642d413 | 33 | //set for the pressed functions to be called when the button is pressed |
kzar | 0:17f02642d413 | 34 | pb1.attach_asserted(&pb1_pressed); |
kzar | 0:17f02642d413 | 35 | pb2.attach_asserted(&pb2_pressed); |
kzar | 0:17f02642d413 | 36 | //Default the sample freq |
kzar | 0:17f02642d413 | 37 | pb1.setSampleFrequency(); |
kzar | 0:17f02642d413 | 38 | pb2.setSampleFrequency(); |
kzar | 0:17f02642d413 | 39 | //Set switches internal pullup |
kzar | 0:17f02642d413 | 40 | dip1.mode(PullUp); |
kzar | 0:17f02642d413 | 41 | dip2.mode(PullUp); |
kzar | 0:17f02642d413 | 42 | dip3.mode(PullUp); |
kzar | 0:17f02642d413 | 43 | |
kzar | 0:17f02642d413 | 44 | //Loop forever |
kzar | 0:17f02642d413 | 45 | while(1) { |
kzar | 0:17f02642d413 | 46 | if (dip1 == 0) { red = 0; } |
kzar | 0:17f02642d413 | 47 | if (dip2 == 0) { green = 0; } |
kzar | 0:17f02642d413 | 48 | if (dip3 == 0) { blue = 0; } |
kzar | 0:17f02642d413 | 49 | } |
kzar | 0:17f02642d413 | 50 | } |
kzar | 0:17f02642d413 | 51 |