OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 9281|回复: 11

实际测试跟软件仿真差别问题

[复制链接]

15

主题

80

帖子

0

精华

初级会员

Rank: 2

积分
183
金钱
183
注册时间
2013-1-23
在线时间
10 小时
发表于 2013-3-15 14:42:39 | 显示全部楼层 |阅读模式
请教各位大虾。
我现在用TIM3的一个溢出中断后,延时240us开启TIM2-4,然后再打开ADC进行上百次的采样;
软件仿真对的,中断到了后在240us后定时器就打开了(开TIM2-4输出一个不一样的电平);
但在实际测试中,档中断到来时候,延时了大概2ms才输出TIM2-4变化点评,实在太离谱了,
然后我通过取消AD,延时立马正常,不知道是否ADC问题?
请问各位大侠
1、是否是ADC影响了时序
2、我需要AD采样,如何在此前提下让中断240us后准确启动TIM2-4
3、是ADC打开优先于定时器吗,我明明是先开TIM2然后才开ADC的
请问如上问题是如何解答谢谢!!!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

15

主题

80

帖子

0

精华

初级会员

Rank: 2

积分
183
金钱
183
注册时间
2013-1-23
在线时间
10 小时
 楼主| 发表于 2013-3-15 14:43:48 | 显示全部楼层
补充,我用的TIM2-4的PWM,
回复 支持 反对

使用道具 举报

15

主题

80

帖子

0

精华

初级会员

Rank: 2

积分
183
金钱
183
注册时间
2013-1-23
在线时间
10 小时
 楼主| 发表于 2013-3-15 15:04:23 | 显示全部楼层
原子哥 给点意见啊
回复 支持 反对

使用道具 举报

15

主题

80

帖子

0

精华

初级会员

Rank: 2

积分
183
金钱
183
注册时间
2013-1-23
在线时间
10 小时
 楼主| 发表于 2013-3-15 15:22:53 | 显示全部楼层
没人吗 我就是想知道ADC是否会影响定时器PWM输出延时
回复 支持 反对

使用道具 举报

36

主题

1105

帖子

5

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2201
金钱
2201
注册时间
2012-2-8
在线时间
35 小时
发表于 2013-3-15 15:35:14 | 显示全部楼层
ADC 和 定时器是不同的硬件模块, 一般是不会相互影响的, 建议检查代码

楼主位对程序流程的说明我也不是很明白. 最好写详细些.
https://github.com/roxma
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-3-15 18:23:56 | 显示全部楼层
回复【楼主位】zhangyi3312:
---------------------------------
说明你的打开AD操作占了比较多时间,检查这部分代码。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

15

主题

80

帖子

0

精华

初级会员

Rank: 2

积分
183
金钱
183
注册时间
2013-1-23
在线时间
10 小时
 楼主| 发表于 2013-3-18 10:12:20 | 显示全部楼层
你们好 ,现在先看看初始化情况
Stm32_Clock_Init(9); //系统时钟设置

 
uart_init(72,9600);   //串口初始化为9600
delay_init(72);       //延时初始化 
 Adc_Init();    //ADC初始化
LED_Init();    //初始化与LED连接的硬件接口
BEEP_Init();          //初始化蜂鸣器端口
KEY_Init();          //初始化与按键连接的硬件接口
  

   TIM3_PWM_Init(166,2879); //不分频。PWM频率=72000/(899+1)=80Khz

 delay_us(240)  ;
TIM4_PWM_Init(166,2879); 
我用初始化延时开启TIM4来完成在过程中每次中断都延时开启TIM4 WM;
如上,我在下面给出图片
回复 支持 反对

使用道具 举报

15

主题

80

帖子

0

精华

初级会员

Rank: 2

积分
183
金钱
183
注册时间
2013-1-23
在线时间
10 小时
 楼主| 发表于 2013-3-18 10:14:39 | 显示全部楼层

PB1就是TIM3,PB9就是延时开启的TIM4
回复 支持 反对

使用道具 举报

15

主题

80

帖子

0

精华

初级会员

Rank: 2

积分
183
金钱
183
注册时间
2013-1-23
在线时间
10 小时
 楼主| 发表于 2013-3-18 10:19:30 | 显示全部楼层
我仿真的可以,到战舰上就不行了,PB9延时太厉害了,这个下降沿都逼近了下一个PB1的上升沿了
我如果将ADC初始化的位置插到TIM3或4的不一样的地方仿真没问题,但实际站战舰测试,有时候延时厉害,有时候输出像干扰一样的波形,还有时候没有输出。。。目前就是这样的情况,请教各位大虾
回复 支持 反对

使用道具 举报

15

主题

80

帖子

0

精华

初级会员

Rank: 2

积分
183
金钱
183
注册时间
2013-1-23
在线时间
10 小时
 楼主| 发表于 2013-3-18 10:21:47 | 显示全部楼层
回复【6楼】正点原子:
---------------------------------
打开AD操作占用时间长?
1、我是用你的战舰程序没变
2、是初始化问题还是实际的AD函数调用问题 ?
回复 支持 反对

使用道具 举报

15

主题

80

帖子

0

精华

初级会员

Rank: 2

积分
183
金钱
183
注册时间
2013-1-23
在线时间
10 小时
 楼主| 发表于 2013-3-18 13:43:13 | 显示全部楼层
目前发现是TIM3的中断影响了时序,定时器PWM开启有延时,
如果TIM3在前,TIM4就要在TIM3进入中断后输出该PWM,
如果开启定时器TIM3,在TIM4开启后在开TIM3中断,就可以输出延时教准确的PWM,不知道解释对吗
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-3-18 13:50:45 | 显示全部楼层
回复【10楼】zhangyi3312:
---------------------------------
要看你中断里面的代码.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-23 12:21

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表