作者lihgong (人生,是一句引用句)
看板Electronics
标题Re: [问题] 8051之C语言问题
时间Tue Jan 30 10:31:42 2007
你的程式如果这样写
那你的8051得在原地一直泡茶都不用做事了 @_@
比较好的作法应该是用timer
研究看看吧 :p
※ 引述《CuckooBoy (阿书)》之铭言:
: 各位大大请教一个问题
: 之前学过FPGA,知道除频器这名词
: 相同的,学8051使用25MHZ,想除频到1Hz
: 请问使用for回圈中的条件(如:cnt 210 2000)
: 有公式可以计算出这些数字吗?
: 还是每次都要试...
: 像下面是用uision2去计算执行秒数在1.01164280s
: 1.01就可以当它是1秒吗?
: #include <AT89C51.h>
: void div(int cnt)
: {
: int i,j,k;
: for (i=0;i<cnt;i++)
: for (j=0;j<210;j++)
: for (k=0;k<2000;k++);
: }
写loop的话
因为loop的开始和结束都需要branch指令
所以你如果想要算出精确的执行时间
从组合语言出发
实际分析一下会执行哪些指令
这样就可以算出时间和 cnt, 210, 2000 的关系
: void main(void)
: {
: div(1);
: }
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.113.128.237