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

Dependencies:   mbed mbed-STM32F103C8T6

Committer:
RuslanUrya
Date:
Thu Aug 09 08:46:39 2018 +0000
Revision:
3:28f7d0d3d199
Parent:
2:b59bb999cffd
Child:
4:bbd610d351fe
?????????? ???????? ?????? ??? ???? ???? (??????, ??????, ?????)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
RuslanUrya 0:4ef048c63bdc 1 #include "mbed.h"
RuslanUrya 0:4ef048c63bdc 2 #include "stm32f103c8t6.h"
RuslanUrya 3:28f7d0d3d199 3 #define idc 2
RuslanUrya 3:28f7d0d3d199 4 #define idp 3
RuslanUrya 3:28f7d0d3d199 5 #define idw 4
RuslanUrya 3:28f7d0d3d199 6 #define pi 3.141592653589793115997963468544185161590576171875
RuslanUrya 3:28f7d0d3d199 7 #define speed_inc 0.20
RuslanUrya 0:4ef048c63bdc 8
RuslanUrya 0:4ef048c63bdc 9 CAN can (PA_11, PA_12);
RuslanUrya 3:28f7d0d3d199 10 Ticker copter;
RuslanUrya 3:28f7d0d3d199 11 Ticker planer;
RuslanUrya 3:28f7d0d3d199 12 Ticker wing;
RuslanUrya 3:28f7d0d3d199 13
RuslanUrya 3:28f7d0d3d199 14
RuslanUrya 3:28f7d0d3d199 15 void tCopter(){
RuslanUrya 3:28f7d0d3d199 16 static double i = 0;
RuslanUrya 3:28f7d0d3d199 17 static double f;
RuslanUrya 3:28f7d0d3d199 18 i += speed_inc;
RuslanUrya 3:28f7d0d3d199 19 if (i > 2) i = 0;
RuslanUrya 3:28f7d0d3d199 20 f = (sin(i * pi) + 1.0) / 2 + 1; //1..2
RuslanUrya 3:28f7d0d3d199 21 float send = static_cast<float>(f);
RuslanUrya 3:28f7d0d3d199 22 can.write(CANMessage(idc, (char*)&send, sizeof(send)));
RuslanUrya 3:28f7d0d3d199 23 }
RuslanUrya 0:4ef048c63bdc 24
RuslanUrya 3:28f7d0d3d199 25 void tPlaner(){
RuslanUrya 3:28f7d0d3d199 26 static double i = 0;
RuslanUrya 3:28f7d0d3d199 27 static double f;
RuslanUrya 3:28f7d0d3d199 28 i += speed_inc;
RuslanUrya 3:28f7d0d3d199 29 if (i > 2) i = 0;
RuslanUrya 3:28f7d0d3d199 30 f = (sin(i * pi) + 1.0) / 2 + 1; //1..2
RuslanUrya 3:28f7d0d3d199 31 float send = static_cast<float>(f);
RuslanUrya 3:28f7d0d3d199 32 can.write(CANMessage(idp, (char*)&send, sizeof(send)));
RuslanUrya 3:28f7d0d3d199 33 }
RuslanUrya 3:28f7d0d3d199 34
RuslanUrya 3:28f7d0d3d199 35 void tWing(){
RuslanUrya 3:28f7d0d3d199 36 static double i = 0;
RuslanUrya 3:28f7d0d3d199 37 static double f;
RuslanUrya 3:28f7d0d3d199 38 i += speed_inc;
RuslanUrya 3:28f7d0d3d199 39 if (i > 2) i = 0;
RuslanUrya 3:28f7d0d3d199 40 f = (sin(i * pi) + 1.0) / 2 + 1; //1..2
RuslanUrya 3:28f7d0d3d199 41 float send = static_cast<float>(f);
RuslanUrya 3:28f7d0d3d199 42 can.write(CANMessage(idw, (char*)&send, sizeof(send)));
RuslanUrya 0:4ef048c63bdc 43 }
RuslanUrya 0:4ef048c63bdc 44
RuslanUrya 0:4ef048c63bdc 45 int main() {
RuslanUrya 0:4ef048c63bdc 46 confSysClock();
RuslanUrya 3:28f7d0d3d199 47 wait(1);
RuslanUrya 3:28f7d0d3d199 48 copter.attach(&tCopter, 0.1);
RuslanUrya 3:28f7d0d3d199 49 wait(3);
RuslanUrya 3:28f7d0d3d199 50 planer.attach(&tPlaner, 0.1);
RuslanUrya 3:28f7d0d3d199 51 wait(3);
RuslanUrya 3:28f7d0d3d199 52 wing.attach(&tWing, 0.1);
RuslanUrya 0:4ef048c63bdc 53 while(1) {
RuslanUrya 3:28f7d0d3d199 54
RuslanUrya 0:4ef048c63bdc 55 }
RuslanUrya 0:4ef048c63bdc 56 }