|
EDA365欢迎您!
您需要 登录 才可以下载或查看,没有帐号?注册
x
請問一下,單晶片計時器設定的觀念# i+ C' X0 W. X f' T
看完書上還是沒很了解..
+ Q, K: q# N' h, d有沒有人可以跟我說一下我的盲點在哪..! T3 h( v9 t* o- X
( I+ [) X- B8 Z$ X' {$ `! m8 S
單晶片用12MHz的石英震盪器
: ?* N' Y) U1 N6 _/ C* X$ m然後因為8051一個機械周期
8 [ v1 p& x% E# q. y# X* ]' Y需要12個石英震盪器周期1 B3 F. h1 v' k
12MHz /12 = 1MHz =1us 所以每1us就送給8051一個脈波
9 L5 h6 P! y, A0 s9 b8 {$ A& w# M6 {& E7 J! @8 H! t% c9 e9 Z
然後內部計時器是16位元 所以最高數到65536 就產生溢位中斷3 A" G9 L) g% B+ l
每1us就送入一個脈波計時器就加1
* M3 C e) Q% ~! E當計數器加到65536就中斷 這個意思是每65536us 就溢位中斷一次
! U+ R6 O0 p) x6 _) u
& v, e3 V% f6 ^5 ?* Z/ o- x& F那如果要設定時間間隔為5ms秒的話+ L, g, m: Q& I5 f; x8 [+ N
就代表每送入5000個1us的脈波就中斷一次
4 m. Q {1 r8 j; i% g但為什麼 計時器設定數值是
6 Y& X* d$ `% x65536-5000 =60536 再轉16進制 去分高低位元就好了?/ }$ J* F0 y2 ~
60536不是意思是,當計數器內部加到60536 就產生中斷嗎?" R) h1 g8 D/ a! i% Z5 }
這樣不就是60536us中斷一次?
+ h* D/ u' t1 w不是5ms中斷一次 |
|