精華區beta Electronics 關於我們 聯絡資訊
※ 引述《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++); : } : void main(void) : { : div(1); : } 如果你要用單晶片去想辦法弄出你要的頻率... 那首先...應該是用一個比較好計算的石英晶體振盪器...Ex 12MHz 接著用timer中斷去算時間... 12MHz...則一個週期是1uS... 如果要產生1Hz... 那應該是設定Timer...假設設定成5000us中斷一次... 接下來...中斷100次...就反向輸出一次... 這樣輸出就會是1Hz... 至於精確度要取決於石英晶體振盪器... 還有你的程式怎麼寫... PS.我記得你不是要生38Khz?= = -- ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁ 國 立 聯 合 大 學 (理工/電資/管理/技術/客家)院所 招生中 National United University ─────────────────────────────────── 首頁 http://www.nuu.edu.tw BBS telnet://uun.twbbs.org -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.133.140.180
CuckooBoy:38???有嗎?哪邊?感謝你的回答!我明天試試Timer0 01/29 22:23
CuckooBoy:1us , 5000us, 100次 是依據什麼計算出這些數字? 01/29 22:28
mosquito520:記錯了...那是另外一個= =" 01/30 13:04
mosquito520:12Mhz的Crystal...1個clock為1us 01/30 13:05