精華區beta Electronics 關於我們 聯絡資訊
你的程式如果這樣寫 那你的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