MPU6050串口发送姿态数据由%.3f改为%f,gambal修改接收数据的个位数,和修改PID值
This commit is contained in:
@ -2,7 +2,7 @@
|
|||||||
//#include "math.h"
|
//#include "math.h"
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
u8 USART_RX_BUF[20];
|
u8 USART_RX_BUF[30];
|
||||||
//<2F><><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
|
//<2F><><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
|
||||||
unsigned short USART_RX_STA=0; //<2F><><EFBFBD><EFBFBD>״̬<D7B4><CCAC>־
|
unsigned short USART_RX_STA=0; //<2F><><EFBFBD><EFBFBD>״̬<D7B4><CCAC>־
|
||||||
|
|
||||||
@ -41,8 +41,8 @@ unsigned short USART_RX_STA=0; //
|
|||||||
|
|
||||||
u32 RX_CNT = 0;
|
u32 RX_CNT = 0;
|
||||||
u8 f;
|
u8 f;
|
||||||
u8 x[10];
|
u8 x[12];
|
||||||
u8 y[10];
|
u8 y[12];
|
||||||
void USART1_IRQHandler(void)
|
void USART1_IRQHandler(void)
|
||||||
{
|
{
|
||||||
unsigned char res;
|
unsigned char res;
|
||||||
@ -61,8 +61,8 @@ void USART1_IRQHandler(void)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
memcpy(x,USART_RX_BUF,f+1);
|
memcpy(x,USART_RX_BUF,f+1);
|
||||||
memcpy(y,USART_RX_BUF+f+1,20-f-1);
|
memcpy(y,USART_RX_BUF+f+1,30-f-1);
|
||||||
memset(USART_RX_BUF,0,20);
|
memset(USART_RX_BUF,0,30);
|
||||||
RX_CNT = 0;
|
RX_CNT = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -9,11 +9,11 @@
|
|||||||
|
|
||||||
|
|
||||||
extern float error;
|
extern float error;
|
||||||
extern u8 USART_RX_BUF[20];
|
extern u8 USART_RX_BUF[30];
|
||||||
//<2F><><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
|
//<2F><><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
|
||||||
extern unsigned short USART_RX_STA; //<2F><><EFBFBD><EFBFBD>״̬<D7B4><CCAC>־
|
extern unsigned short USART_RX_STA; //<2F><><EFBFBD><EFBFBD>״̬<D7B4><CCAC>־
|
||||||
extern u8 x[10];
|
extern u8 x[12];
|
||||||
extern u8 y[10];
|
extern u8 y[12];
|
||||||
|
|
||||||
void usart1_Init(u32 bound);
|
void usart1_Init(u32 bound);
|
||||||
|
|
||||||
|
@ -163,7 +163,7 @@ void PID_init(void)
|
|||||||
// pid_ang_timestamp=SysTick->VAL;
|
// pid_ang_timestamp=SysTick->VAL;
|
||||||
|
|
||||||
// ////////yyyyyyyyyyyy
|
// ////////yyyyyyyyyyyy
|
||||||
pid_vel_P=1.5; //0.1
|
pid_vel_P=0.8; //0.1
|
||||||
pid_vel_I=0.1; //2
|
pid_vel_I=0.1; //2
|
||||||
output_vel_ramp=100;
|
output_vel_ramp=100;
|
||||||
integral_vel_prev=0;
|
integral_vel_prev=0;
|
||||||
@ -172,30 +172,10 @@ void PID_init(void)
|
|||||||
pid_vel_timestamp=SysTick->VAL;
|
pid_vel_timestamp=SysTick->VAL;
|
||||||
|
|
||||||
pid_ang_P = 10;
|
pid_ang_P = 10;
|
||||||
pid_ang_D =0.5;
|
pid_ang_D =5;
|
||||||
error_ang_prev= 0;
|
error_ang_prev= 0;
|
||||||
pid_ang_timestamp=SysTick->VAL;
|
pid_ang_timestamp=SysTick->VAL;
|
||||||
|
|
||||||
}
|
}
|
||||||
//void commander_run(void)
|
|
||||||
//{
|
|
||||||
// if((USART_RX_STA&0x8000)!=0)
|
|
||||||
// {
|
|
||||||
// switch(USART_RX_BUF[0])
|
|
||||||
// {
|
|
||||||
|
|
||||||
// case 'y': //D
|
|
||||||
// target = 0 - atof((const char *)(USART_RX_BUF+1));
|
|
||||||
// break;
|
|
||||||
// case 'x':
|
|
||||||
// target =atof((const char *)(USART_RX_BUF+1));
|
|
||||||
// break;
|
|
||||||
//
|
|
||||||
// }
|
|
||||||
|
|
||||||
// USART_RX_STA=0;
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
|
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
float shaftAngle(void)
|
float shaftAngle(void)
|
||||||
@ -231,22 +211,6 @@ float LPF_velocity(float x)
|
|||||||
return y;
|
return y;
|
||||||
}
|
}
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
//void PID_init(void)
|
|
||||||
//{
|
|
||||||
// pid_vel_P=0.2; //0.1
|
|
||||||
// pid_vel_I=2.0; //2
|
|
||||||
// output_vel_ramp=100;
|
|
||||||
// integral_vel_prev=0;
|
|
||||||
// error_vel_prev=0;
|
|
||||||
// output_vel_prev=0;
|
|
||||||
// pid_vel_timestamp=SysTick->VAL;
|
|
||||||
//
|
|
||||||
// pid_ang_P=20;
|
|
||||||
// pid_ang_D=0.5;
|
|
||||||
// error_ang_prev=0;
|
|
||||||
// pid_ang_timestamp=SysTick->VAL;
|
|
||||||
//}
|
|
||||||
/******************************************************************************/
|
|
||||||
float PID_velocity(float error)
|
float PID_velocity(float error)
|
||||||
{
|
{
|
||||||
unsigned long now_us;
|
unsigned long now_us;
|
||||||
|
@ -39,7 +39,7 @@ int main(void)
|
|||||||
GetAngle(&MPU6050,&Angle,0.003f);
|
GetAngle(&MPU6050,&Angle,0.003f);
|
||||||
float x = Angle.pitch / 180.f * _PI;
|
float x = Angle.pitch / 180.f * _PI;
|
||||||
float y = Angle.roll / 180.f * _PI;
|
float y = Angle.roll / 180.f * _PI;
|
||||||
printf("%.3fy%.3f\r\n",x,y);
|
printf("%fy%f\r\n",x,y);
|
||||||
//// printf("y%.3f\r\n",Angle.roll / 180.f * _PI);
|
//// printf("y%.3f\r\n",Angle.roll / 180.f * _PI);
|
||||||
// printf("A%dA",i);
|
// printf("A%dA",i);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user