OpenEdv-开源电子网

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

delay函数单步调试执行不过去。。。

[复制链接]

17

主题

142

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
230
金钱
230
注册时间
2013-6-27
在线时间
0 小时
发表于 2014-7-12 15:27:10 | 显示全部楼层 |阅读模式
5金钱
问题是这样的,我在代码中调用delay_ms(5);或者是delay_ms(5);
可是在debug模式下单步运行总是不能执行过去,代码就停在while(temp&0x01&&!(temp&(1<<16)));//等待时间到达
请问这是怎么回事,本人对于这块不懂,请大神们指点!
谢谢

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

17

主题

142

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
230
金钱
230
注册时间
2013-6-27
在线时间
0 小时
 楼主| 发表于 2014-7-12 15:27:24 | 显示全部楼层
回复

使用道具 举报

17

主题

142

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
230
金钱
230
注册时间
2013-6-27
在线时间
0 小时
 楼主| 发表于 2014-7-12 16:55:39 | 显示全部楼层
小弟这半个月一直在调液晶240128,除了把光标闪烁调出来,什么都出不来,现在怀疑是延时不够,用系统延时delay_ms(5)又没法单步,单步总是执行不过去,求求各位解决一下
回复

使用道具 举报

230

主题

1950

帖子

10

精华

论坛元老

Rank: 8Rank: 8

积分
4562
金钱
4562
注册时间
2010-12-14
在线时间
32 小时
发表于 2014-7-12 18:34:43 | 显示全部楼层
你有没有初始化Systick?
也就是我们的 delay_init函数有调用没?
我是开源电子网?网站管理员,对网站有任何问题,请与我联系!QQ:389063473Email:389063473@qq.com
回复

使用道具 举报

17

主题

142

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
230
金钱
230
注册时间
2013-6-27
在线时间
0 小时
 楼主| 发表于 2014-7-12 19:18:30 | 显示全部楼层
回复【4楼】Admin:
---------------------------------
在main()函数里调用了
回复

使用道具 举报

0

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2014-6-10
在线时间
0 小时
发表于 2014-7-12 20:51:54 | 显示全部楼层
确定你使用在线仿真而不是使用软件仿真!
回复

使用道具 举报

17

主题

175

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1016
金钱
1016
注册时间
2014-4-7
在线时间
99 小时
发表于 2014-7-12 21:12:51 | 显示全部楼层
你是按得F11还是F10??
在你没有做出成绩之前,这个世界不会在乎你的自尊。
回复

使用道具 举报

17

主题

142

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
230
金钱
230
注册时间
2013-6-27
在线时间
0 小时
 楼主| 发表于 2014-7-14 14:22:21 | 显示全部楼层
回复【6楼】ziye334:
----------------------------------
在线仿真,硬件仿真
回复

使用道具 举报

17

主题

142

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
230
金钱
230
注册时间
2013-6-27
在线时间
0 小时
 楼主| 发表于 2014-7-14 14:25:25 | 显示全部楼层
回复【7楼】亲亻尔嘴:
---------------------------------
按ctrl+F5,我的keil是4.6版本的
回复

使用道具 举报

13

主题

43

帖子

0

精华

初级会员

Rank: 2

积分
134
金钱
134
注册时间
2013-11-18
在线时间
4 小时
发表于 2014-7-14 16:12:54 | 显示全部楼层
回复【3楼】superayr:
---------------------------------
直接用跳到指定行的指令就可以了吧,把延时跳过
http://chenxuexia.taobao.com/shop/view_shop.htm?spm=a1z0e.1.0.0.bXH3cY&mytmenu=mdianpu&utkn=g,nzqws53pnbstinztgi2tk1401605753588&user_number_id=223376791&scm=1028.1.1.20001&v=1
回复

使用道具 举报

17

主题

142

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
230
金钱
230
注册时间
2013-6-27
在线时间
0 小时
 楼主| 发表于 2014-7-14 18:23:21 | 显示全部楼层
回复【10楼】fangxinla:
---------------------------------
单步时的delay函数是不是和连续运行时不太一样啊?
在单步时,明显等待时间都不是几百毫秒,都要以秒来计
回复

使用道具 举报

13

主题

43

帖子

0

精华

初级会员

Rank: 2

积分
134
金钱
134
注册时间
2013-11-18
在线时间
4 小时
发表于 2014-7-15 08:45:52 | 显示全部楼层
回复【11楼】superayr:
---------------------------------
单步运行一下只走一条指令,最多就几个指令周期,也就是几微秒,所以几百毫秒起码得单步运行上万次了
http://chenxuexia.taobao.com/shop/view_shop.htm?spm=a1z0e.1.0.0.bXH3cY&mytmenu=mdianpu&utkn=g,nzqws53pnbstinztgi2tk1401605753588&user_number_id=223376791&scm=1028.1.1.20001&v=1
回复

使用道具 举报

0

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2014-6-10
在线时间
0 小时
发表于 2014-7-15 09:33:24 | 显示全部楼层
如果在中断中调用delay_ms()函数,可能会与其它地方的delay_ms()函数冲突,检查下是不是这个原因
回复

使用道具 举报

17

主题

142

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
230
金钱
230
注册时间
2013-6-27
在线时间
0 小时
 楼主| 发表于 2014-7-16 23:42:37 | 显示全部楼层
现在能运行过去了,谢谢
回复

使用道具 举报

13

主题

185

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
272
金钱
272
注册时间
2014-4-9
在线时间
9 小时
发表于 2014-7-17 09:37:38 | 显示全部楼层
如果怀疑延时可以找2个IO用延时输出方波用示波器测,ms延时的精度还是很准的,us好像有1的误差。
大海啊,全是水; 骏马啊,四条腿。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-5 07:23

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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