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.
Dependents: CAN_Simple_Publisher CAN_Pub_actuator
Diff: MS9g_move_sin.cpp
- Revision:
- 2:3eadad0761e9
- Parent:
- 1:1ec6af6d0c6d
- Child:
- 3:9839ae432c26
- Child:
- 4:98c0904b5ec7
--- a/MS9g_move_sin.cpp Wed May 02 12:19:26 2018 +0000
+++ b/MS9g_move_sin.cpp Thu May 03 14:46:58 2018 +0000
@@ -1,25 +1,23 @@
#include "MS9g_move_sin.h"
//class Servo_9g
Servo_9g::Servo_9g(){}
-
-Servo_9g::Servo_9g (PinName Pin):
-Servo(Pin)
-{
- Servo.period_ms(20);
+Servo_9g::Servo_9g (PinName Pin){
+ Servo = new PwmOut(Pin);
+ Servo->period_ms(20);
}
Servo_9g::~Servo_9g(){
-
+ delete Servo;
}
//end of class Servo_9g
//class Servo_9g_Move
-//Servo_9g_Move::Servo_9g_Move():Servo_9g(){}
-//Servo_9g_Move::Servo_9g_Move(PinName Pin):Servo_9g(Pin){}
+Servo_9g_Move::Servo_9g_Move():Servo_9g(){}
+Servo_9g_Move::Servo_9g_Move(PinName Pin):Servo_9g(Pin){}
Servo_9g_Move::~Servo_9g_Move(){}
-void Servo_9g_Move::Move (float f){
- Servo = f * val; // duty-cycle, perсents 0..1
+void Servo_9g_Move::Move (float a){
+ Servo_9g::Servo->write(a * val); // duty-cycle, perсents 0..1
}
void Servo_9g_Move::NextSin(){
@@ -39,31 +37,31 @@
//end of class Servo_9g_Move
//class Servo_9g_CAN
-Servo_9g_CAN::Servo_9g_CAN(PinName rd, PinName td):Servo_9g_Move():
-can(rd, td)
+Servo_9g_CAN::Servo_9g_CAN(PinName rd, PinName td) :
+ Servo_9g_Move(),
+ can(rd, td)
{
- func.id = 1;
- func.len = 4;
+
}
-Servo_9g_CAN::Servo_9g_CAN(PinName rd, PinName td, int hz):Servo_9g_Move():
-can(rd, td, hz)
+Servo_9g_CAN::Servo_9g_CAN(PinName rd, PinName td, int hz) :
+ Servo_9g_Move(),
+ can(rd, td, hz)
{
- func.id = 1;
- func.len = 4;
+
}
-Servo_9g_CAN::Servo_9g_CAN(PinName servo_pwm, PinName rd, PinName td):Servo_9g_Move(servo_pwm):
-can(rd, td)
+Servo_9g_CAN::Servo_9g_CAN(PinName servo_pwm, PinName rd, PinName td) :
+ Servo_9g_Move(servo_pwm),
+ can(rd, td)
{
- func.id = 1;
- func.len = 4;
+ CANMessage msg;
}
-Servo_9g_CAN::Servo_9g_CAN(PinName servo_pwm, PinName rd, PinName td, int hz):Servo_9g_Move(servo_pwm):
-can(rd, td, hz)
+Servo_9g_CAN::Servo_9g_CAN(PinName servo_pwm, PinName rd, PinName td, int hz) :
+ Servo_9g_Move(servo_pwm),
+ can(rd, td, hz)
{
- func.id = 1;
- func.len = 4;
+ CANMessage msg;
}
Servo_9g_CAN::~Servo_9g_CAN(){
@@ -72,17 +70,22 @@
void Servo_9g_CAN::SendNextSin(){
NextSin();
- func.data = &f; //возможно func.data = &(const char)f; или func.data = (const char*)&f;
- can.write(func);
+ float send = static_cast<float>(f);
+ can.write(CANMessage(1, (char*)&send, sizeof(send)));
}
-void Servo_9g_CAN::ReceiveServo(){
- if(can.read(func)){
- Move((float)func.data); //по идее функ- массив, значит имя-указатель
+bool Servo_9g_CAN::ReceiveServo(){
+ if(can.read(msg)){
+ float rec;
+ memcpy(&rec, msg.data, sizeof(rec));
+// Move((float)*msg.data);
+ Move(rec);
+ return true;
}
+ return false;
}
-
void Servo_9g_CAN::SendSin(){
timer.attach(this, &Servo_9g_CAN::SendNextSin, val);
+
}
//end of class Servo_9g_CAN
\ No newline at end of file