资源简介
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) //两次编码器的反馈值差别太大,表示圈数发生了改变
{
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;
}
//计算得到连续的编码器输出值
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 < RATE_BUF_SIZE; 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个文件信息
- 上一篇:Geekli
nk极客设备运维系统 - 下一篇:uipath第一阶段问题和答案
相关资源
- arm嵌入式jepg图片显示lcd源码
- 2019年下半年软考中级嵌入式系统设计
- CHAdeMO 3.0
- 基于嵌入式的安防视频监控
- 国嵌嵌入式必修实验手册
- 嵌入式 L inux C 语言应用程序设计.pd
- 蓝桥杯嵌入式五届到八届完成全部源
- GBT28171-2011嵌入式软件可靠性测试方法
-
em
bedded Deep Learning - 嵌入式实时操作系统 uC/OS-II第二版
- QT之模仿手机主界面左右滑动翻页,带
- 实时UML:开发嵌入式系统高效对象
- 嵌入式实时操作系统μC/OS-III-原版书
- 基于“聚芯SoC”的嵌入式系统设计.
- 嵌入式组态软件HMImaker绿色版人机界面
- 底层工作者手册之嵌入式操作系统内
- Linux Device Driver Development
- 计算机三级嵌入式系统学习思维导图
- 疲劳驾驶监测嵌入式设计
- 倍福嵌入式控制器cx5020文档资料
- 跟我学eCos嵌入式操作系统
- A53系统移植实验手册.pdf
- stm32单片机实现 无线通信3—6台扩展
- JZ2440使用手册
- 嵌入式系统原理与应用技术第2版袁志
- Stateflow流程图
- 嵌入式应用程序开发案例
- 基于ARM的嵌入式VxWorks实践教程.pdf
- AVR单片机嵌入式系统原理与应用实践
- 嵌入式系统哈工大
评论
共有 条评论