Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp
00001 #include "mbed.h" 00002 #include "PinDetect.h" 00003 00004 // Define buttons 00005 PinDetect pb1(p19); 00006 PinDetect pb2(p15); 00007 00008 PinDetect dip1(p10); 00009 PinDetect dip2(p11); 00010 PinDetect dip3(p12); 00011 00012 DigitalOut pin(p14); 00013 00014 class RGBLed 00015 { 00016 public: 00017 RGBLed(PinName redpin, PinName greenpin, PinName bluepin); 00018 void write(float red,float green, float blue); 00019 private: 00020 PwmOut _redpin; 00021 PwmOut _greenpin; 00022 PwmOut _bluepin; 00023 }; 00024 00025 RGBLed::RGBLed (PinName redpin, PinName greenpin, PinName bluepin) 00026 : _redpin(redpin), _greenpin(greenpin), _bluepin(bluepin) 00027 { 00028 //50Hz PWM clock default a bit too low, go to 2000Hz (less flicker) 00029 _redpin.period(0.0005); 00030 } 00031 00032 void RGBLed::write(float red,float green, float blue) 00033 { 00034 _redpin = red; 00035 _greenpin = green; 00036 _bluepin = blue; 00037 } 00038 //class could be moved to include file 00039 00040 00041 //Setup RGB led using PWM pins and class 00042 RGBLed myRGBled(p21,p22,p23); //RGB PWM pins 00043 00044 float pwm = 0.5f; 00045 00046 void inc_led() { 00047 00048 // Read in current PWM value and increment it 00049 pwm += 0.1f; 00050 if (pwm > 1.0f) { 00051 pwm = 0.0f; 00052 } 00053 } 00054 00055 void dec_led() { 00056 00057 // Read in current PWM value and increment it 00058 pwm -= 0.1f; 00059 if (pwm < 0.0f) { 00060 pwm = 0.0f; 00061 } 00062 } 00063 00064 void dip_red() { 00065 myRGBled.write(pwm,0.0,0.0); //red 00066 wait(2.0); 00067 } 00068 00069 void dip_green() { 00070 myRGBled.write(0.0,pwm,0.0); //green 00071 wait(2.0); 00072 } 00073 00074 void dip_blue() { 00075 myRGBled.write(0.0,0.0,pwm); //blue 00076 wait(2.0); 00077 } 00078 00079 int main() { 00080 00081 pb1.mode(PullUp); 00082 pb2.mode(PullUp); 00083 dip1.mode(PullUp); 00084 dip2.mode(PullUp); 00085 dip3.mode(PullUp); 00086 00087 wait(.001); 00088 00089 pb1.attach_deasserted(&inc_led); 00090 pb2.attach_deasserted(&dec_led); 00091 00092 dip1.attach_deasserted(&dip_red); 00093 dip2.attach_deasserted(&dip_green); 00094 dip3.attach_deasserted(&dip_blue); 00095 00096 pb1.setSampleFrequency(); 00097 pb2.setSampleFrequency(); 00098 00099 while(1) { 00100 pin = 1; 00101 00102 } 00103 }
Generated on Sat Jul 30 2022 20:16:04 by
1.7.2