Руслан Урядинский / Mbed 2 deprecated step_by_step_pub

Dependencies:   mbed mbed-STM32F103C8T6

Revision:
3:28f7d0d3d199
Parent:
2:b59bb999cffd
Child:
4:bbd610d351fe
--- a/main.cpp	Wed Aug 08 15:12:38 2018 +0000
+++ b/main.cpp	Thu Aug 09 08:46:39 2018 +0000
@@ -1,22 +1,56 @@
 #include "mbed.h"
 #include "stm32f103c8t6.h"
-#define iden 3
+#define idc 2
+#define idp 3
+#define idw 4
+#define pi 3.141592653589793115997963468544185161590576171875
+#define speed_inc 0.20
 
 CAN can (PA_11, PA_12);
-Ticker ticker;
+Ticker copter;
+Ticker planer;
+Ticker wing;
+
+
+void tCopter(){
+    static double i = 0;
+    static double f;
+    i += speed_inc;
+    if (i > 2) i = 0;
+    f = (sin(i * pi) + 1.0) / 2 + 1; //1..2
+    float send = static_cast<float>(f);
+    can.write(CANMessage(idc, (char*)&send, sizeof(send)));
+}
 
-char i = 0;
-void transmit(){
-    if (i++ > 10) i = 0;
-    can.write(CANMessage(iden, &i, 1, CANData, CANStandard));
+void tPlaner(){
+    static double i = 0;
+    static double f;
+    i += speed_inc;
+    if (i > 2) i = 0;
+    f = (sin(i * pi) + 1.0) / 2 + 1; //1..2
+    float send = static_cast<float>(f);
+    can.write(CANMessage(idp, (char*)&send, sizeof(send)));
+}
+
+void tWing(){
+    static double i = 0;
+    static double f;
+    i += speed_inc;
+    if (i > 2) i = 0;
+    f = (sin(i * pi) + 1.0) / 2 + 1; //1..2
+    float send = static_cast<float>(f);
+    can.write(CANMessage(idw, (char*)&send, sizeof(send)));
 }
 
 int main() {
     confSysClock();
-    
-    ticker.attach(&transmit, 0.5);
+    wait(1);
+    copter.attach(&tCopter, 0.1);
+    wait(3);
+    planer.attach(&tPlaner, 0.1);
+    wait(3);
+    wing.attach(&tWing, 0.1);
     while(1) {
-        can.write(CANMessage(1, &i, 1, CANData, CANStandard));
-        wait(0.3);
+        
     }
 }