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.
Diff: rgb_buttons/main.cpp
- Revision:
- 0:6a73d3dc037e
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/rgb_buttons/main.cpp Mon Jul 28 20:29:28 2014 +0000
@@ -0,0 +1,71 @@
+#include "mbed.h"
+
+// Define buttons
+InterruptIn button_red(p5);
+InterruptIn button_green(p6);
+InterruptIn button_blue(p7);
+
+// Define LED colors
+PwmOut led_red(p21);
+PwmOut led_green(p22);
+PwmOut led_blue(p23);
+
+// Interrupt Service Routine to increment the red color
+void inc_red() {
+
+ float pwm;
+
+ // Read in current PWM value and increment it
+ pwm = led_red.read();
+ pwm += 0.1f;
+ if (pwm > 1.0f) {
+ pwm = 0.0f;
+ }
+ led_red.write(pwm);
+}
+
+// Interrupt Service Routine to increment the green color
+void inc_green() {
+
+ float pwm;
+
+ // Read in current PWM value and increment it
+ pwm = led_green.read();
+ pwm += 0.1f;
+ if (pwm > 1.0f) {
+ pwm = 0.0f;
+ }
+ led_green.write(pwm);
+}
+
+// Interrupt Service Routine to increment the blue color
+void inc_blue() {
+
+ float pwm;
+
+ // Read in current PWM value and increment it
+ pwm = led_blue.read();
+ pwm += 0.1f;
+ if (pwm > 1.0f) {
+ pwm = 0.0f;
+ }
+ led_blue.write(pwm);
+}
+
+// Main loop
+int main() {
+
+ // Initialize all LED colors as off
+ led_red.write(0.0f);
+ led_green.write(0.0f);
+ led_blue.write(0.0f);
+
+ // Define three interrupts - one for each color
+ button_red.fall(&inc_red);
+ button_green.fall(&inc_green);
+ button_blue.fall(&inc_blue);
+
+ // Do nothing! We wait for an interrupt to happen
+ while(1) {
+ }
+}
\ No newline at end of file