資源簡介
Robomaster機甲大賽2016年開源步兵車代碼,可移植行強

代碼片段和文件信息
#include?“main.h“
#include?“stdio.h“
static?uint32_t?can_count?=?0;
volatile?Encoder?CM1Encoder?=?{000000000};
volatile?Encoder?CM2Encoder?=?{000000000};
volatile?Encoder?CM3Encoder?=?{000000000};
volatile?Encoder?CM4Encoder?=?{000000000};
volatile?Encoder?GMYawEncoder?=?{000000000};
volatile?Encoder?GMPitchEncoder?=?{000000000};
float?ZGyroModuleAngle?=?0.0f;
/*
***********************************************************************************************
*Name??????????:GetEncoderBias
*Input?????????:can?message
*Return????????:void
*Description???:to?get?the?initiatial?encoder?of?the?chassis?motor?201?202?203?204
*
*
***********************************************************************************************
*/
void?GetEncoderBias(volatile?Encoder?*v?CanRxMsg?*?msg)
{
????????????v->ecd_bias?=?(msg->Data[0]<<8)|msg->Data[1];??//保存初始編碼器值作為偏差??
????????????v->ecd_value?=?v->ecd_bias;
????????????v->last_raw_value?=?v->ecd_bias;
????????????v->temp_count++;
}
/*
***********************************************************************************************
*Name??????????:EncoderProcess
*Input?????????:can?message
*Return????????:void
*Description???:to?get?the?initiatial?encoder?of?the?chassis?motor?201?202?203?204
*
*
***********************************************************************************************
*/
void?EncoderProcess(volatile?Encoder?*v?CanRxMsg?*?msg)
{
int?i=0;
int32_t?temp_sum?=?0;????
v->last_raw_value?=?v->raw_value;
v->raw_value?=?(msg->Data[0]<<8)|msg->Data[1];
v->diff?=?v->raw_value?-?v->last_raw_value;
if(v->diff?-7500)????//兩次編碼器的反饋值差別太大,表示圈數(shù)發(fā)生了改變
{
v->round_cnt++;
v->ecd_raw_rate?=?v->diff?+?8192;
}
else?if(v->diff>7500)
{
v->round_cnt--;
v->ecd_raw_rate?=?v->diff-?8192;
}
else
{
v->ecd_raw_rate?=?v->diff;
}
//計算得到連續(xù)的編碼器輸出值
v->ecd_value?=?v->raw_value?+?v->round_cnt?*?8192;
//計算得到角度值,范圍正負無窮大
v->ecd_angle?=?(float)(v->raw_value?-?v->ecd_bias)*360/8192?+?v->round_cnt?*?360;
v->rate_buf[v->buf_count++]?=?v->ecd_raw_rate;
if(v->buf_count?==?RATE_BUF_SIZE)
{
v->buf_count?=?0;
}
//計算速度平均值
for(i?=?0;i? {
temp_sum?+=?v->rate_buf[i];
}
v->filter_rate?=?(int32_t)(temp_sum/RATE_BUF_SIZE);
}
/*
************************************************************************************************************************
*Name????????:?CanReceiveMsgProcess
*?Description:?This?function?process?the?can?message?representing?the?encoder?data?received?from?the?CAN2?bus.
*?Arguments??:?msg?????is?a?pointer?to?the?can?message.
*?Returns????:?void
*?Note(s)????:?none
************************************************************************************************************************
*/
void?CanReceiveMsgProcess(CanRxMsg?*?msg)
{??????
????????//GMYawEncoder.ecd_bias?=?yaw_ecd_bias;
????????can_count++;
switch(msg->StdI
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????8122??2016-05-09?22:02??RM2016步兵車開源代碼_下\RM2016步兵車開源代碼??下\RM2016_INFANTRY_OPEN_SOURCEV.1.6.4\APP\CanBusTask.c
?????文件???????8046??2016-05-06?10:45??RM2016步兵車開源代碼_下\RM2016步兵車開源代碼??下\RM2016_INFANTRY_OPEN_SOURCEV.1.6.4\APP\CanBusTask.c.bak
?????文件???????8046??2016-05-06?10:45??RM2016步兵車開源代碼_下\RM2016步兵車開源代碼??下\RM2016_INFANTRY_OPEN_SOURCEV.1.6.4\APP\CanBusTask.c.bak.bak
?????文件???????1201??2016-05-06?12:04??RM2016步兵車開源代碼_下\RM2016步兵車開源代碼??下\RM2016_INFANTRY_OPEN_SOURCEV.1.6.4\APP\CanBusTask.h
?????文件???????1201??2016-05-06?12:04??RM2016步兵車開源代碼_下\RM2016步兵車開源代碼??下\RM2016_INFANTRY_OPEN_SOURCEV.1.6.4\APP\CanBusTask.h.bak
?????文件???????1201??2016-05-06?12:04??RM2016步兵車開源代碼_下\RM2016步兵車開源代碼??下\RM2016_INFANTRY_OPEN_SOURCEV.1.6.4\APP\CanBusTask.h.bak.bak
?????文件??????12800??2016-05-09?21:51??RM2016步兵車開源代碼_下\RM2016步兵車開源代碼??下\RM2016_INFANTRY_OPEN_SOURCEV.1.6.4\APP\ControlTask.c
?????文件??????12080??2016-05-06?10:58??RM2016步兵車開源代碼_下\RM2016步兵車開源代碼??下\RM2016_INFANTRY_OPEN_SOURCEV.1.6.4\APP\ControlTask.c.bak
?????文件??????12080??2016-05-06?10:58??RM2016步兵車開源代碼_下\RM2016步兵車開源代碼??下\RM2016_INFANTRY_OPEN_SOURCEV.1.6.4\APP\ControlTask.c.bak.bak
?????文件???????4324??2016-05-09?21:54??RM2016步兵車開源代碼_下\RM2016步兵車開源代碼??下\RM2016_INFANTRY_OPEN_SOURCEV.1.6.4\APP\ControlTask.h
?????文件???????4322??2016-05-05?16:45??RM2016步兵車開源代碼_下\RM2016步兵車開源代碼??下\RM2016_INFANTRY_OPEN_SOURCEV.1.6.4\APP\ControlTask.h.bak
?????文件???????4322??2016-05-05?16:45??RM2016步兵車開源代碼_下\RM2016步兵車開源代碼??下\RM2016_INFANTRY_OPEN_SOURCEV.1.6.4\APP\ControlTask.h.bak.bak
?????文件??????17409??2016-05-09?14:57??RM2016步兵車開源代碼_下\RM2016步兵車開源代碼??下\RM2016_INFANTRY_OPEN_SOURCEV.1.6.4\APP\IOTask.c
?????文件??????17409??2016-05-09?14:57??RM2016步兵車開源代碼_下\RM2016步兵車開源代碼??下\RM2016_INFANTRY_OPEN_SOURCEV.1.6.4\APP\IOTask.c.bak
?????文件??????17409??2016-05-09?14:57??RM2016步兵車開源代碼_下\RM2016步兵車開源代碼??下\RM2016_INFANTRY_OPEN_SOURCEV.1.6.4\APP\IOTask.c.bak.bak
?????文件???????5399??2016-05-06?21:50??RM2016步兵車開源代碼_下\RM2016步兵車開源代碼??下\RM2016_INFANTRY_OPEN_SOURCEV.1.6.4\APP\IOTask.h
?????文件???????5399??2016-05-06?21:50??RM2016步兵車開源代碼_下\RM2016步兵車開源代碼??下\RM2016_INFANTRY_OPEN_SOURCEV.1.6.4\APP\IOTask.h.bak
?????文件???????5399??2016-05-06?21:50??RM2016步兵車開源代碼_下\RM2016步兵車開源代碼??下\RM2016_INFANTRY_OPEN_SOURCEV.1.6.4\APP\IOTask.h.bak.bak
?????文件??????11029??2016-05-05?20:46??RM2016步兵車開源代碼_下\RM2016步兵車開源代碼??下\RM2016_INFANTRY_OPEN_SOURCEV.1.6.4\APP\RemoteTask.c
?????文件??????11029??2016-05-05?20:46??RM2016步兵車開源代碼_下\RM2016步兵車開源代碼??下\RM2016_INFANTRY_OPEN_SOURCEV.1.6.4\APP\RemoteTask.c.bak
?????文件??????11029??2016-05-05?20:46??RM2016步兵車開源代碼_下\RM2016步兵車開源代碼??下\RM2016_INFANTRY_OPEN_SOURCEV.1.6.4\APP\RemoteTask.c.bak.bak
?????文件???????4618??2016-05-06?12:04??RM2016步兵車開源代碼_下\RM2016步兵車開源代碼??下\RM2016_INFANTRY_OPEN_SOURCEV.1.6.4\APP\RemoteTask.h
?????文件???????4618??2016-05-06?12:04??RM2016步兵車開源代碼_下\RM2016步兵車開源代碼??下\RM2016_INFANTRY_OPEN_SOURCEV.1.6.4\APP\RemoteTask.h.bak
?????文件???????4618??2016-05-06?12:04??RM2016步兵車開源代碼_下\RM2016步兵車開源代碼??下\RM2016_INFANTRY_OPEN_SOURCEV.1.6.4\APP\RemoteTask.h.bak.bak
?????文件???????4406??2016-05-09?21:58??RM2016步兵車開源代碼_下\RM2016步兵車開源代碼??下\RM2016_INFANTRY_OPEN_SOURCEV.1.6.4\APP\SuperviseTask.c
?????文件???????4406??2016-05-05?20:48??RM2016步兵車開源代碼_下\RM2016步兵車開源代碼??下\RM2016_INFANTRY_OPEN_SOURCEV.1.6.4\APP\SuperviseTask.c.bak
?????文件???????4406??2016-05-05?20:48??RM2016步兵車開源代碼_下\RM2016步兵車開源代碼??下\RM2016_INFANTRY_OPEN_SOURCEV.1.6.4\APP\SuperviseTask.c.bak.bak
?????文件???????3555??2016-05-05?19:45??RM2016步兵車開源代碼_下\RM2016步兵車開源代碼??下\RM2016_INFANTRY_OPEN_SOURCEV.1.6.4\APP\SuperviseTask.h
?????文件???????3555??2016-05-05?19:45??RM2016步兵車開源代碼_下\RM2016步兵車開源代碼??下\RM2016_INFANTRY_OPEN_SOURCEV.1.6.4\APP\SuperviseTask.h.bak
?????文件???????3555??2016-05-05?19:45??RM2016步兵車開源代碼_下\RM2016步兵車開源代碼??下\RM2016_INFANTRY_OPEN_SOURCEV.1.6.4\APP\SuperviseTask.h.bak.bak
............此處省略925個文件信息
評論
共有 條評論