EDA365电子工程师网

标题: 利用cubeR7F0C80212 精确延时 [打印本页]

作者: Wenghezhong    时间: 2016-6-24 17:24
标题: 利用cubeR7F0C80212 精确延时
想用瑞萨这块电路制作一个温度控制器,利用DS18B20来实现温度的读取,因为DS18B20单线通讯,对资源要求比较低,但是对时序要求比较严格,因此要想实现与DS18B20的通讯,就必须搞清楚精确延时问题。
4 g; P7 F1 K8 L% F3 O  u    如何使用延时呢?一般来说,我们可以使用while(--i)或者for语句。但是怎么确定到底延时多少呢??如果用汇编语言,我们可以根据汇编语句执行周期进行计算。但是现在我们都用C语言了,要想确认,如何实现精确的延时呢?可以通过cube+的软件对while语句设置timer,来计算语句定时时间。' f7 ]8 b% f+ L0 p% h
   注意:设置timer只能在仿真器里选择,在EZ-CUBE里似乎设置不了。
  n4 B5 E2 g6 W3 i. a. R在cube+运行程序前,我们可以对对应延时的语句分别设置start timer和stop timer。之后启动程序,再点停止后就可以看出来程序大概运行的时间。我用excel收集统计了while(--i)这个语句延时的时间。并总结了公式。具体见附件。
" c' \& M  C4 E5 ^" ^   另外为了确保该时间延时的正确性,我又同时写了定时程序,定时1秒翻转P0.3的led灯,延时程序延时1s钟(实际约是100*10.00085ms),程序运行2个灯基本上同步闪烁。

time_measure.zip

106.46 KB, 下载次数: 0, 下载积分: 威望 -5

瑞萨定时测算.zip

8.99 KB, 下载次数: 0, 下载积分: 威望 -5


作者: Haiting32451    时间: 2016-6-25 09:20
学习中,谢谢分享/ y7 R- t: s2 X8 \: t# k: z





欢迎光临 EDA365电子工程师网 (https://bbs.elecnest.cn/) Powered by Discuz! X3.2