64

帖子

0

TA的资源

一粒金砂(初级)

21
 
1、循环等待;
2、定时器;

回复

75

帖子

0

TA的资源

一粒金砂(初级)

22
 
还有一种能够充分发挥keil c作用的方法;

你根据楼上的意见,大概写一个延时程序,然后在debug方式下单步运行,在跳到延时程序段时,留意一下下面状态栏上的 时刻显示 ,一步一步执行,看看跑那段程序要了多少时间,然后修改 ,适度调整,最后得到的延时应该是几乎接近真实的。注意在 configuration里头设置相应的晶振频率
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

23
 
我也想知道,正在找這方面的資料~~~~~
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

24
 
如用keil c的话用while(--i)能获得精确的延时,你可以看一下其对应的汇编
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

25
 
最好还是用定时器吧,那个还是比较准确的吧^_^
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

26
 
定时器吧~
其实代码都可以的,只是麻烦而已
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

27
 
赞同lbing7
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

28
 
可以用
while(--i);
来做延时,最好你能在Keil的Debug中查看生成的汇编代码,多对比看看,对你更加熟练的掌握C有好处
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

29
 
我刚测试了一下,使用如下代码
char i;

for(i=199;--i;i<0);
可以获得400个指令周期的延时,你可以将这段代码编译后查看汇编指令,可以加深你对for指令的使用
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

30
 
可以嵌入汇编来写:


  1. #pragma asm
  2. 汇编代码在这里
  3. #pragma endasm
复制代码
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

31
 
ms级的精度就用自编的Delay函数即可,再高的精度就用定时器和中断,延时函数可以用
for()
  for();
这样的形式用debug一步一步算吧,不过注意设置的频率
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

32
 
本人一般涉及到要求精确时序,一般采用汇编语言编写,而在C语言中调用汇编编写的延时程序,这样可以做到十分精确
也可以说是混合编程吧!
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表