(4/10;5/10)xTaskCreate(atkpTxTask, “...“, ., .., 3, ..);atkpRxAnlTask /*创建stkp发送和解析任务*/
目录
前言
xTaskCreate(atkpTxTask, "ATKP_TX", 150, NULL, 3, NULL); /*atkp发送任务*/
xTaskCreate(atkpRxAnlTask, "ATKP_RX_ANL", 300, NULL, 6, NULL); /*atkp解析任务*/
一、void atkpTxTask(void *param)
void atkpTxTask(void *param)
{sendMsgACK();while(1){atkpSendPeriod();vTaskDelay(1);}
}
1. sendMsgACK();
void sendMsgACK(void)
{
//测试MUP Baro气压 是否初始化完毕msg.version = configParam.version;msg.mpu_selfTest = getIsMPU9250Present();//MPU是否初始化完毕(应该在后文传感器任务初始)msg.baro_slfTest = getIsBaroPresent();//气压计是否初始化完毕msg.isCanFly = getIsCalibrated();//重力是否校准完成msg.isLowpower = getIsLowpower();//是否低电量msg.moduleID = getModuleID();//获取扩展模块 下文任务atkp_t p;p.msgID = UP_REMOTER;p.dataLen = sizeof(msg)+1;p.data[0] = ACK_MSG;memcpy(p.data+1, &msg, sizeof(msg));
//这个数据包的格式为 上行两字节 UP_REMOTER dataLen data:ACK_MSG +msgradiolinkSendPacketBlocking(&p); //发送到 txQueue队列句柄}//msg的格式如下typedef __packed struct
{u8 version;bool mpu_selfTest;bool baro_slfTest;bool isCanFly;bool isLowpower;enum expModuleID moduleID;
} MiniFlyMsg_t;
2. atkpSendPeriod();/*数据周期性发送给上位机,每1ms调用一次*/
static void atkpSendPeriod(void)
{static u16 count_ms = 1;if(!(count_ms % PERIOD_STATUS)) //在没有30次之前都会进if,之后每到一定PERIOD的倍数 就会余0 然后就会进入if{attitude_t attitude;//定义了 时间戳 yaw pitch rawgetAttitudeData(&attitude);int positionZ = getPositionZ();sendStatus(attitude.roll, attitude.pitch, attitude.yaw, positionZ, 0, flyable); }if(!(count_ms % PERIOD_SENSOR)){Axis3i16 acc;Axis3i16 gyro;Axis3i16 mag;getSensorRawData(&acc, &gyro, &mag);sendSenser(acc.x, acc.y, acc.z, gyro.x,gyro.y, gyro.z, mag.x, mag.y,mag.z);}if(!(count_ms % PERIOD_RCDATA)){sendRCData(rcdata.thrust, rcdata.yaw, rcdata.roll,rcdata.pitch, 0, 0, 0, 0, 0, 0);}if(!(count_ms % PERIOD_POWER)){float bat = pmGetBatteryVoltage();sendPower(bat*100,500);}if(!(count_ms % PERIOD_MOTOR)){u16 m1,m2,m3,m4;motorPWM_t motorPWM;getMotorPWM(&motorPWM);m1 = (float)motorPWM.m1/65535*1000;m2 = (float)motorPWM.m2/65535*1000;m3 = (float)motorPWM.m3/65535*1000;m4 = (float)motorPWM.m4/65535*1000;sendMotorPWM(m1,m2,m3,m4,0,0,0,0);}if(!(count_ms % PERIOD_SENSOR2)){int baro = getBaroData() * 100.f;sendSenser2(baro, 0);}if(++count_ms>=65535) count_ms = 1;
}
主要是获取各个传感器的数据 然后根据不同的 msgID 传给txQueue 队列
3. vTaskDelay(1);
https://blog.csdn.net/crjmail/article/details/80015628
二、void atkpRxAnlTask(void *param)
void atkpRxAnlTask(void *param)
{atkp_t p;while(1){xQueueReceive(rxQueue, &p, portMAX_DELAY);atkpReceiveAnl(&p);}
}
1.
2.static void atkpReceiveAnl(atkp_t *anlPacket)
static void atkpReceiveAnl(atkp_t *anlPacket)
{if(anlPacket->msgID == DOWN_COMMAND) //
(4/10;5/10)xTaskCreate(atkpTxTask, “...“, ., .., 3, ..);atkpRxAnlTask /*创建stkp发送和解析任务*/相关推荐
- 神奇的10个人10个帽子的问题
题目: 10个人10顶帽子,每顶帽子上有1-10中的一个数字,这些数字有可能重复 ,每个人只能看到其他9个人头上帽子上的数字,看不到自己的帽子上的数字 .这时要求每人同时写出一个数字 . 问,是否 ...
- lol12月25服务器维护,lol12月10日维护到几点 英雄联盟12月10日10.25版本更新维护时间...
lol12月10日维护到几点?2020年12月10日英雄联盟全区停机维护更新10.25版本的内容,大家需要等待至维护结束才能登录游戏体验新版本.不知道本次更新时长的玩家,下面小编带来了英雄联盟12月1 ...
- AI:2020年6月24日北京智源大会演讲分享之机器学习前沿青年科学家专题论坛——10:40-11:10金驰《Near-Optimal Reinforcement Learning with Sel》
AI:2020年6月24日北京智源大会演讲分享之机器学习前沿青年科学家专题论坛--10:40-11:10金驰<Near-Optimal Reinforcement Learning with S ...
- 十以内的加减java编写程序_Java实现随机出题,10道10以内加减法计算代码实例
本文实例为大家分享了Java实现随机出题,10道10以内加减法计算l的具体代码,供大家参考,具体内容如下 package com.swift; import java.awt.Toolkit; imp ...
- MyBatis-学习笔记10【10.JNDI扩展知识】
Java后端 学习路线 笔记汇总表[黑马程序员] MyBatis-学习笔记01[01.Mybatis课程介绍及环境搭建][day01] MyBatis-学习笔记02[02.Mybatis入门案例] M ...
- 总结一下silverlight文章,然后死等10月10日的正式版
这三天参加了微软关于WPF&Silverlight的培训(昨天结束),与美国微软总部过来的专家Jaime Rodriguez, Laurence Moroney,做了面对面的技术交流,感觉受益 ...
- 10.15 iptables filter表小案例10.16/10.17/10.18 iptables nat表应用
2019独角兽企业重金招聘Python工程师标准>>> 10.15 iptables filter表小案例 iptables 命令.语法总结 iptables-nvL //查看ipt ...
- Java 10的10个新特性,将彻底改变你写代码的方式
转载自 Java 10的10个新特性,将彻底改变你写代码的方式 Java 9才发布几个月,很多玩意都没整明白,现在Java 10又要来了.. 这时候我真尼玛想说:线上用的JDK 7 甚至JDK 6,J ...
- 在数学中10!代表10的阶乘。既代表1*2*3*4....*10; * 现在要求编程求出8!。
package Day03;/*** 第四题:* 在数学中10!代表10的阶乘.既代表1*2*3*4....*10;* 现在要求编程求出8!.*/ public class Day03_Demo04 ...
最新文章
- influxDB和grafana
- ACM之常见的(C++版)问题解析
- 安全性、监控、调优 的一些思考
- gephi生成网络关系图_用 NetworkX + Gephi + Nebula Graph 分析lt;权力的游戏gt;人物关系(上)
- idea中导入jdbc驱动步骤详解
- 深圳市云瑶信息科技有限公司
- CentOS 7安装 MySQL 8 数据库
- 关于引用mshtml的问题
- Android adb重启手机
- 一些开源的IOS项目(wifi扫描 条形码扫描 tcp/ip 等等)
- 博弈论入门——威佐夫博弈
- nodejs async.whilst用法
- android11原生录屏,终于把安卓这项功能实现了!iOS 11录屏功能演示:超好用
- 【三子棋】C语言实现简易三子棋
- Dell EMC VxRail
- python人民币和美元转换
- 大多数日志文件的后缀名是_log4j(添加日志)
- 微信登录流程图(转)
- 2018ChinaJoy万代南梦宫展台速刷攻略
- 朝阳医院2018年销售数据分析
热门文章
- 最顶级的心理学家是如何看待我们的人生的?
- 用Qtl编写媒体软件到安卓(待续)
- 将PDF文件转换为JPG格式图片的3种简单方法
- 阿里的Hadoop之路:Hadoop的过去、现在和未来
- 轻松搞定茶水分离,随时享受清香好味道,Simita名享玻璃泡茶杯上手
- 利用Dynamo自动创建Revit楼板
- Microsoft Edge浏览器使用体验
- 软件测试初始决策表,软件测试决策表
- 新年通信新格局 网络电话省钱通信香饽饽
- python二手房数据分析_Python 爬取北京二手房数据,分析北漂族买得起房吗? | 附完整源码...