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.
Dependencies: BEAR_Reciever Motor eeprom iSerial mbed
Fork of DogPID by
Diff: main.cpp
- Revision:
- 12:6b3b997dd7c2
- Parent:
- 11:3dd92d1d542c
- Child:
- 13:49cb002ad8fd
diff -r 3dd92d1d542c -r 6b3b997dd7c2 main.cpp
--- a/main.cpp Thu Jan 21 14:49:40 2016 +0000
+++ b/main.cpp Thu Jan 21 16:27:04 2016 +0000
@@ -138,51 +138,55 @@
void CmdCheck(uint8_t *cmd,uint8_t ins)
{
- switch(cmd[0]) {
- case SET_MOTOR_UPPER_ANG : {
- uint8_t Upper_setpoint_buffer[2];
- uint8_t Lower_setpoint_buffer[2];
- Upper_setpoint_buffer[0]=cmd[1];
- Upper_setpoint_buffer[1]=cmd[2];
- Upper_SetPoint=Utilities::ConvertUInt8ArrayToInt16(Upper_setpoint_buffer);
- Lower_setpoint_buffer[0]=cmd[5];
- Lower_setpoint_buffer[1]=cmd[6];
- Lower_SetPoint=Utilities::ConvertUInt8ArrayToInt16(Lower_setpoint_buffer);
- //Set Set_point
- Up_PID.setSetPoint(Upper_SetPoint);
- Low_PID.setSetPoint(Lower_SetPoint);
-
- //Control Motor
- Move_Upper();
- Move_Lower();
+ switch (ins) {
+ case PING:{
+
}
-
- case GET_MOTOR_UPPER_ANG : {
- float up_angle,low_angle;
- //
- com.sendMotorPos(MY_ID,up_angle,low_angle);
+ case READ_DATA:{
+ switch (cmd[0]){
+ case ID:{
+ MY_ID = cmd[1];
+ }
+ case MOTOR_UPPER_ANG:{
+ uint8_t Upper_setpoint_buffer[2];
+ Upper_setpoint_buffer[0]=cmd[1];
+ Upper_setpoint_buffer[1]=cmd[2];
+ Upper_SetPoint=Utilities::ConvertUInt8ArrayToInt16(Upper_setpoint_buffer);
+ }
+ case MOTOR_LOWER_ANG:{
+ uint8_t Lower_setpoint_buffer[2];
+ Lower_setpoint_buffer[0]=cmd[1];
+ Lower_setpoint_buffer[1]=cmd[2];
+ Lower_SetPoint=Utilities::ConvertUInt8ArrayToInt16(Lower_setpoint_buffer);
+ }
+ case MARGIN:{
+ uint8_t Margin_buffer[4];
+ Margin_buffer[0]=cmd[1];
+ Margin_buffer[1]=cmd[2];
+ Margin_buffer[2]=cmd[3];
+ Margin_buffer[3]=cmd[4];
+ Margin=Utilities::ConvertUInt8ArrayToInt16(Margin_buffer);
+ }
+ case KP_UPPER_MOTOR:{
+ uint8_t KP_buffer[2];
+ KP_buffer[0]=cmd[1];
+ KP_buffer[1]=cmd[2];
+ U_Kc=Utilities::ConvertUInt8ArrayToInt16(KP_buffer);
+ }
+ case KI_UPPER_MOTOR:{
+ uint8_t KI_buffer[2];
+ float KI;
+ KI_buffer[0]=cmd[1];
+ KI_buffer[1]=cmd[2];
+ KI=Utilities::ConvertUInt8ArrayToInt16(KI_buffer);
+ U_Ti=KI/U_Kc;
+ }
+ case KD_UPPER_MOTOR:{
+
+
+
}
- case SAVE_DATA_TO_EEPROM : {
- uint8_t Int_data_buffer[2];
- uint8_t Float_data_buffer[2];
- uint8_t Address_buffer[2];
- float int_buffer;
- float float_buffer;
- float data;
- uint16_t address;
- Int_data_buffer[0]=cmd[1];
- Int_data_buffer[1]=cmd[2];
- Float_data_buffer[0]=cmd[3];
- Float_data_buffer[1]=cmd[4];
- int_buffer=(float)Utilities::ConvertUInt8ArrayToInt16(Int_data_buffer);
- float_buffer=(float)Utilities::ConvertUInt8ArrayToInt16(Float_data_buffer)/FLOAT_CONVERTER;
-
- address=Utilities::ConvertUInt8ArrayToInt16(Address_buffer);
- data=int_buffer+float_buffer;
-
- //
- }
- }
+ }
}
/******************************************************/
void Start_Up ()// load parameter from eeprom before start
@@ -205,7 +209,7 @@
uint8_t data_array[10];
int8_t ins;
- com.ReceiveCommand(MY_ID,data_array);
+ com.ReceiveCommand(&MY_ID,data_array,&ins);
CmdCheck(data_array,ins);
}
/*******************************************************/
