|
EDA365欢迎您!
您需要 登录 才可以下载或查看,没有帐号?注册
x
請問一下,單晶片計時器設定的觀念* v1 ^) O+ g2 a/ {4 S# E9 N% C* T
看完書上還是沒很了解..4 P2 j# U Z0 k7 t6 P& a# ~& C; x
有沒有人可以跟我說一下我的盲點在哪..
# `) ^1 ^, J8 S( q7 x( H# }: C- }1 a9 R1 v- d7 A& Z
單晶片用12MHz的石英震盪器( A( T3 j0 V+ V" V: H9 y4 a% V1 O
然後因為8051一個機械周期
2 |8 l5 n# K& Z需要12個石英震盪器周期* J( Z/ T; Z( j6 b) E
12MHz /12 = 1MHz =1us 所以每1us就送給8051一個脈波
( K* N$ h8 x9 d L: d6 C# G$ {2 K S/ g! ^1 i
然後內部計時器是16位元 所以最高數到65536 就產生溢位中斷0 e& ~7 E1 P! d! ]: H! F
每1us就送入一個脈波計時器就加1
, F8 T9 l* \+ v( e% @' G+ C. Q當計數器加到65536就中斷 這個意思是每65536us 就溢位中斷一次: M8 U8 z3 D* L1 |% b
1 i, c/ d+ x& ?7 z( s) f) j那如果要設定時間間隔為5ms秒的話
, O$ w; z, b" ^+ d就代表每送入5000個1us的脈波就中斷一次 / k# S) | }- i5 [/ V
但為什麼 計時器設定數值是
' J8 C: b% A: J+ g; U6 l65536-5000 =60536 再轉16進制 去分高低位元就好了?7 G0 U9 j9 T) f2 @: F
60536不是意思是,當計數器內部加到60536 就產生中斷嗎?$ Z+ C, {% l# T# d7 h
這樣不就是60536us中斷一次?9 h K9 T) _9 _3 x
不是5ms中斷一次 |
|