本文整理汇总了C++中HMC5883L::GetDataRaw方法的典型用法代码示例。如果您正苦于以下问题:C++ HMC5883L::GetDataRaw方法的具体用法?C++ HMC5883L::GetDataRaw怎么用?C++ HMC5883L::GetDataRaw使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类HMC5883L
的用法示例。
在下文中一共展示了HMC5883L::GetDataRaw方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: loop
/**
*循环体
*
*/
void loop()
{
static double updateSlice=0, dataSendSlice= 0,voltageSendTimeSlice=0; //taskmanager时间 测试
//系统运行指示灯,1s闪烁一次
ledBlue.Blink(0,0.5,false);
//更新姿态、控制电机,500Hz
if(tskmgr.TimeSlice(updateSlice,0.002)) //每0.002秒(500Hz)执行一次
{
gimbal.UpdateIMU();//更新姿态
gimbal.UpdateMotor(&motorValueRoll,&motorValuePitch,&motorValueYaw);//控制电机
}
//输出电源值和飞机姿态数据、电机数据。12.5Hz
if(tskmgr.TimeSlice(dataSendSlice,0.1))
{
// if(gimbal.IsGyroCalibrated() && gimbal.IsMagCalibrated())//已经校准完毕
// {
ledGreen.Toggle();
communicate.ANO_DT_Send_Status(gimbal.mAngle.y*RtA,gimbal.mAngle.x*RtA,gimbal.mAngle.z*RtA,0,1,gimbal.mIsArmed);
//communicate.ANO_DT_Send_MotoPWM(motorValueRoll%256+256,motorValuePitch%256+256,motorValueYaw%256+256,0,0,0,0,0);
communicate.ANO_DT_Send_MotoPWM(motorValueRoll,motorValuePitch,motorValueYaw,0,0,0,0,0);
//communicate.ANO_DT_Send_Power(gimbal.UpdateVoltage(4,5.1,1,12)*100,0);
if(!gimbal.IsMagCalibrated())
communicate.ANO_DT_Send_Senser(mpu6050.GetAcc().x*1000,mpu6050.GetAcc().y*1000,mpu6050.GetAcc().z*1000,mpu6050.GetGyrRaw().x,mpu6050.GetGyrRaw().y,mpu6050.GetGyrRaw().z,mag.xMaxMinusMin,mag.yMaxMinusMin,mag.zMaxMinusMin,0);
else
communicate.ANO_DT_Send_Senser(mpu6050.GetAcc().x*1000,mpu6050.GetAcc().y*1000,mpu6050.GetAcc().z*1000,mpu6050.GetGyrRaw().x,mpu6050.GetGyrRaw().y,mpu6050.GetGyrRaw().z,mag.GetDataRaw().x,mag.GetDataRaw().y,mag.GetDataRaw().z,0);
communicate.ANO_DT_Send_RCData(0,(gimbal.mTargetAngle.z+180)*2.77778+1000,(gimbal.mTargetAngle.y+180)*2.77778+1000,(gimbal.mTargetAngle.x+180)*2.77778+1000,0,0,0,0,0,0);
// }
// else if(gimbal.IsGyroCalibrating()||gimbal.IsMagCalibrating())
// LOG("..");
// com<<mpu6050.GetAcc().x<<"\t"<<mpu6050.GetAcc().y<<"\t"<<mpu6050.GetAcc().z<<"\t"<<mpu6050.GetGyrRaw().x<<"\t"<<mpu6050.GetGyrRaw().y<<"\t"<<mpu6050.GetGyrRaw().z<<"\t"<<mag.GetDataRaw().x<<"\t"<<mag.GetDataRaw().y<<"\t"<<mag.GetDataRaw().z<<"\n";
}
if(tskmgr.TimeSlice(voltageSendTimeSlice,2))
{
if(gimbal.IsGyroCalibrated() && gimbal.IsMagCalibrated())//已经校准完毕
{
communicate.ANO_DT_Send_Power(gimbal.UpdateVoltage(5.1,1,12)*100,0);
}
}
//处理来自地面站的消息
communicate.ANO_DT_Data_Receive_Deal(gimbal);
}