nevertheless
一般會員
發表:4 回覆:7 積分:2 註冊:2005-06-08
發送簡訊給我
|
我使用TIMER0的MODE 0...
TH0 = (8192 - count) / 32;
TL0 = (8192 - count) mod 32;
我使用的語言是Keil C... 請問一下各位大大...
count變數的值是怎麼算的...??
另外我想要計時20us...
該如何設定...??
謝謝...^^"
|
㊣
版主
發表:261 回覆:2302 積分:1667 註冊:2005-01-04
發送簡訊給我
|
手邊有51相關書籍吧!?書中一定有說明原理與如何計算,請看仔細.有問題再來發問. 給你個提示:當石英振盪器接12MHz時,count=5000就是計時5ms.20us該怎麼設呢?我想答案很清楚了!
------ -------------------------------------------------------------------------
走是為了到另一境界,停是為了欣賞人生;未走過千山萬水,怎知生命的虛實與輕重!?
|
阿信
版主
發表:111 回覆:983 積分:813 註冊:2005-03-10
發送簡訊給我
|
你的公式看起來怪怪滴~
應該是
TH0 = (65536-count) / 256
TL0 = (65536-count) mod 256
這樣才對
count的值為多少
就是計時多少uS -------------------
美好的事物 稍縱即逝
|
topevo6
一般會員
發表:9 回覆:21 積分:16 註冊:2005-04-14
發送簡訊給我
|
TIMER0的MODE 0是13位元的計數器,
它是向上計數的計時計數器
如果做計時器而你的振盪器是12MHz的話
亦即每1us週期TH暫存器內容會加1,一直到溢位為止
要計時20us的話應該是
MOV TH0,#>(8192-8172)
MOV TL0,#<(8192-8172)
|
阿信
版主
發表:111 回覆:983 積分:813 註冊:2005-03-10
發送簡訊給我
|
沒注意是MODE 0
引言:
要計時20us的話應該是
MOV TH0,#>(8192-8172)
MOV TL0,#<(8192-8172)
Ar??? , it's Keil C , (8192-20) -------------------
美好的事物 稍縱即逝
|
nevertheless
一般會員
發表:4 回覆:7 積分:2 註冊:2005-06-08
發送簡訊給我
|
引言:
沒注意是MODE 0
引言:
要計時20us的話應該是
MOV TH0,#>(8192-8172)
MOV TL0,#<(8192-8172)
Ar??? , it's Keil C , (8192-20)
也就是說我只要在原本的count部份輸入20,就相當於20us了嗎?
但是我從示波器上看到的時間會改變ㄟ,不知道是什麼原因。
也謝謝各位大大的回答
|
㊣
版主
發表:261 回覆:2302 積分:1667 註冊:2005-01-04
發送簡訊給我
|
引言:
也就是說我只要在原本的count部份輸入20,就相當於20us了嗎?
yes 引言:
但是我從示波器上看到的時間會改變ㄟ,不知道是什麼原因。
也謝謝各位大大的回答
這要看你ㄉdelay或中斷是怎麼寫的...
------ -------------------------------------------------------------------------
走是為了到另一境界,停是為了欣賞人生;未走過千山萬水,怎知生命的虛實與輕重!?
|
nevertheless
一般會員
發表:4 回覆:7 積分:2 註冊:2005-06-08
發送簡訊給我
|
引言:
這要看你ㄉdelay或中斷是怎麼寫的...
了解,另外我忘了說,我的震盪器是用11.0592MHz的,
這對於計時器的影響該怎麼修正??
|
㊣
版主
發表:261 回覆:2302 積分:1667 註冊:2005-01-04
發送簡訊給我
|
引言:
了解,另外我忘了說,我的震盪器是用11.0592MHz的,
這對於計時器的影響該怎麼修正??
12/11.0592=1.085 假設12MHz時要設20,11.0592MHz就要設 20*1.085==21.7
------ -------------------------------------------------------------------------
走是為了到另一境界,停是為了欣賞人生;未走過千山萬水,怎知生命的虛實與輕重!?
|
nevertheless
一般會員
發表:4 回覆:7 積分:2 註冊:2005-06-08
發送簡訊給我
|
引言:
12/11.0592=1.085 假設12MHz時要設20,11.0592MHz就要設 20*1.085==21.7
可是TL0 沒有辦法處理小數點,不過我用近似值22去處理應該只有一點點誤差 感謝大大,我繼續努力去....
|