资源简介
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第一阶段问题和答案
相关资源
- 智能家居系统项目 嵌入式
- Micrium.RTOS.1.0.0.pack
- ISE_14.7_license.lic
- stm32f103c8t6 4 oled.rar
- mpu6050+hmc5883L.rar
- 嵌入式图形界面MiniGUI的示例程序9例
- 混沌时间序列分析工具箱
- ARM嵌入式项目实战
- 数据库水印嵌入提取数据库水印数据
- uCOS编译环境建立 BC45 TASM
- stm32 用SPI 方式读写 SDHC
- 自动售货机的内部嵌入式系统
- 51单片机中使用ucos ii的优缺点
- 嵌入式实时操作系统ucos-II 第二版 源
- 基于串口设备的嵌入式Web服务器系统
- 基于LW IP的嵌入式串口服务器的设计与
- 一种嵌入式串口共享服务器的设计
- 21天学会嵌入式开发STM32.zip
- 嵌入式智能平台为城市一卡通打造智
- 研祥“EVOC”嵌入式智能平台在
- ARM7TDMI-S在嵌入式系统中的Bootloader代码
- LPC2000系列微控制器应对嵌入式需求
- 嵌入式实时操作系统μC/OS-II与eCos的
- 基于STM32的嵌入式双目图像采集系统设
- 嵌入式实时操作系统在DATU中的应用
- 嵌入式实时操作系统μC/OS-II下通用驱
- 嵌入式实时操作系统μC/OS-II在ARM上的
- 嵌入式操作系统的解析
- SAC型液压支架控制器检测平台的设计
- 一种用ARM7+UC/OS-II设计的信号采集系统
评论
共有 条评论