ジョイスティック切換えで色々な処理をやります。 C言語学習用です。

Dependencies:   C12832 MMA7660 mbed

Revision:
13:2c1fe87a06cd
Child:
14:15447d4751c3
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/color.cpp	Wed Apr 04 20:58:28 2018 +0900
@@ -0,0 +1,40 @@
+#include "mbed.h"
+#include "commands.h"
+
+PwmOut r (p23);
+PwmOut g (p24);
+PwmOut b (p25);
+
+static void _Finalize(void) {
+    r = 1.0;
+    g = 1.0;
+    b = 1.0; 
+}
+
+static void _Initialize(void) {
+    r.period_ms(1);
+    _Finalize();
+}
+
+static float _ColorRange = 0.0;
+static void _ProcessInitialize(void) {
+    _ColorRange = 0.0;
+}
+
+static bool _ProcessIsContinue(void) {
+    return _ColorRange < 1.0;
+}
+
+static void _ProcessRunning(void) {
+    float p = 3 * _ColorRange;
+    r = 1.0 - ((p < 1.0) ? 1.0 - p : (p > 2.0) ? p - 2.0 : 0.0);
+    g = 1.0 - ((p < 1.0) ? p : (p > 2.0) ? 0.0 : 2.0 - p);
+    b = 1.0 - ((p < 1.0) ? 0.0 : (p > 2.0) ? 3.0 - p : p - 1.0);  ;  
+    wait (0.01);
+    
+    _ColorRange += 0.001;
+}
+
+COMMAND_DEFINE Command_color = {(char*)"color", _Initialize, _Finalize,
+    _ProcessInitialize, _ProcessIsContinue, _ProcessRunning
+};