|
EDA365欢迎您!
您需要 登录 才可以下载或查看,没有帐号?注册
x
請問一下,單晶片計時器設定的觀念
! ^( k) t7 v( O8 u0 s看完書上還是沒很了解..+ g2 o( U7 u& P
有沒有人可以跟我說一下我的盲點在哪..
% K' ?6 L% C& ^0 k2 p
, t# Q0 j+ u% j單晶片用12MHz的石英震盪器
+ d: A( l) d- Z% k9 T1 Q& |% ]然後因為8051一個機械周期
+ w! V7 t/ `0 ?- E需要12個石英震盪器周期) N1 N: D( b6 K7 ] D2 A: E( C$ p
12MHz /12 = 1MHz =1us 所以每1us就送給8051一個脈波% ]& K$ M9 h2 Y6 L/ J
5 S; E5 M3 ^& \
然後內部計時器是16位元 所以最高數到65536 就產生溢位中斷$ k* r; S9 F$ r
每1us就送入一個脈波計時器就加1
- P k+ r, A, q' f: P& O7 l2 k當計數器加到65536就中斷 這個意思是每65536us 就溢位中斷一次, n* a- c/ X$ x: `0 T" }2 C
% [ I6 V) v+ n+ {0 b9 X/ V那如果要設定時間間隔為5ms秒的話
% Z* Y3 @) \% I& P. [/ c5 m就代表每送入5000個1us的脈波就中斷一次 2 }% e' u+ }" T) H' C' j4 g
但為什麼 計時器設定數值是
( B* L* _- h, j, Z0 [$ H" R4 O$ [! Q65536-5000 =60536 再轉16進制 去分高低位元就好了?- m7 ]7 l$ F$ p2 P
60536不是意思是,當計數器內部加到60536 就產生中斷嗎?2 Q. B- Q& ~& d6 A ~
這樣不就是60536us中斷一次?
1 Q2 W% Q% l; ^0 G% }2 l不是5ms中斷一次 |
|