项目需求:利用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
+关注
关注
114文章
5123浏览量
213259 -
AD
+关注
关注
27文章
868浏览量
150115 -
函数
+关注
关注
3文章
4294浏览量
62347
发布评论请先 登录
相关推荐
CAN发送的底层逻辑:CANwrite函数机制介绍
这个系列是全新的系列,整个系列会通过实际操作,调试实际的代码,以CAN为例,完整的解析AUTOSAR的从底层MCAL 到COM等上层模块的通信链路层。重点讲述数据的流向,以及各个模块的作用,配置方法。
为什么底层函数里面有7个呢?
《STM32中文参考手册》P350说到BWTR寄存器只有四个,为什么底层函数里面有7个呢?如下: SRAM/NOR闪存写时序寄存器 1…4 (FSMC_BWTR1…4) 地址偏移:0xA000
发表于 06-21 04:01
浅析回调函数
回调用于层间协作,上层将本层函数安装在下层,这个函数就是回调,而下层在一定条件下触发回调,例如作为一个驱动,是一个底层,他在收到一个数据时,除了完成本层的处理工作外,还将进行回调,将这
发表于 08-06 06:10
为什么不能将新旧电池、不同型号电池混用?
为什么不能将新旧电池、不同型号电池混用? 因为旧电池能量低,电量少,而新电池则能量高,电量多,当它们混用时,不但
发表于 10-28 15:32
•6616次阅读
驱动之路-设备模型之上层模型
底层模型决定上层模型,在总线,设备,驱动的结构体中你总是可以看到它们间接或者直接的包含了kobject结构或kset结构。
发表于 05-15 17:04
•620次阅读
手机充电器可以混用吗
手机的充电器是可以混用的,生产厂家在这一点上面也会考虑到,因为都是USB接口,即使不是有意的,也是很容易出现混用的。虽然手机充电器的标准接口都是USB,但是在混用时,有可能达不到手机原本的充电速度或者是电流。
发表于 04-04 16:37
•2.6w次阅读
评论