项目需求:利用PWM产生加热信号,需要在PWM低信号时采集AD值
代码实现部分:
#define heat_det1_open GPIO_SetBits(GPIOB,GPIO_Pin_12) //引脚PB12打开
#define heat_det1_close GPIO_ResetBits(GPIOB,GPIO_Pin_12) //引脚PB12关闭
#define heat_det2_open GPIO_SetBits(GPIOB,GPIO_Pin_13) //引脚PB13打开
#define heat_det2_close GPIO_ResetBits(GPIOB,GPIO_Pin_13) //引脚PB13关闭
/******************************************************************************
* 负 责 人 : ***
* 函数功能 :控制PB12,PB13开启与关闭进行采集
******************************************************************************/
void heat_std_en()
{
heat_det1_open;
heat_det2_open;
}
void heat_std_disen()
{
heat_det1_close;
heat_det2_close;
}
/******************************************************************************
* 负 责 人 : ***
******************************************************************************/
double get_Pt_res()
{
heat_std_en(); //使能det1与det2
delay_us(5300); //防电压抖动延时
get_val.ad1 = pm_get_adc(AD1Chn);
delay_us(50);
get_val.ad2 = pm_get_adc(AD2Chn);
delay_us(50);
get_val.ad3 = pm_get_adc(AD3Chn);
delay_us(50);
测试发现,这里牵扯到一个问题,底层的函数调用和上层逻辑代码互用,而且存在 一个误区,ad采集的时间与ad采样以及时间延时的时间误差,加上本身跑的是裸机跑的系统,系统函数 调用过程产生的时间差导致函数在ad采集过程中达不到想要的采集效果,双线程同样给存在调度问题,因此双线程(1个产生PWM,1个用来检测引脚高低电平采集)这种方法在调度上和时间上存在误差。
解决方案:
重新开启一个定时器,在PWM开启时同时是开启,在PWM的低电平通过定时器的时间开始采集AD即可。
审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
PWM
+关注
关注
116文章
5907浏览量
227118 -
AD
+关注
关注
28文章
879浏览量
155507 -
函数
+关注
关注
3文章
4423浏览量
68047
发布评论请先 登录
相关推荐
热点推荐
CAN发送的底层逻辑:CANwrite函数机制介绍
这个系列是全新的系列,整个系列会通过实际操作,调试实际的代码,以CAN为例,完整的解析AUTOSAR的从底层MCAL 到COM等上层模块的通信链路层。重点讲述数据的流向,以及各个模块的作用,配置方法。
浅析回调函数
回调用于层间协作,上层将本层函数安装在下层,这个函数就是回调,而下层在一定条件下触发回调,例如作为一个驱动,是一个底层,他在收到一个数据时,除了完成本层的处理工作外,还将进行回调,将这
发表于 08-06 06:10
驱动之路-设备模型之上层模型
底层模型决定上层模型,在总线,设备,驱动的结构体中你总是可以看到它们间接或者直接的包含了kobject结构或kset结构。
发表于 05-15 17:04
•997次阅读
手机充电器可以混用吗
手机的充电器是可以混用的,生产厂家在这一点上面也会考虑到,因为都是USB接口,即使不是有意的,也是很容易出现混用的。虽然手机充电器的标准接口都是USB,但是在混用时,有可能达不到手机原本的充电速度或者是电流。
发表于 04-04 16:37
•3w次阅读
锡膏混用,哪些情况要命,哪些情况可救?一文说透混用红线
锡膏混用风险极高,五大高危场景严禁操作:无铅与有铅混用违反法规且焊点易断裂;无卤与有卤混用因卤素残留引发漏电;高低温锡膏混用导致焊点失效;不同活性等级
光纤收发器品牌不同能混用吗?
在光纤通信网络部署中,一个高频问题困扰着众多工程师与采购方: 不同品牌的 光纤收发器 能否混用? 这一问题背后,涉及技术参数匹配、协议兼容性、工程稳定性等多重维度。本文将从底层原理到实际应用场
微电网分层控制:底层、中层、上层全链路设计
能力弱、扩展性差等弊端,难以适配新能源出力的随机性、负荷的波动性以及多主体协同的复杂需求。为此,构建“底层执行-中层协调-上层决策”的分层控制架构,实现全链路的精准控制、高效协同与全局优化,成为微电网
底层与上层函数的混用存在的问题
评论