|
EDA365欢迎您!
您需要 登录 才可以下载或查看,没有帐号?注册
x
請問一下,單晶片計時器設定的觀念
/ |* \3 i8 }* w2 ]看完書上還是沒很了解... q; p! T! ~" _! V- b( z3 V- o
有沒有人可以跟我說一下我的盲點在哪..
4 z. ]! h% H! ?6 `# B- N0 {1 N% _4 A: z! F/ F
單晶片用12MHz的石英震盪器- |' f5 ?$ R7 L! l
然後因為8051一個機械周期
3 T# Z; Q' ~4 K2 d' G需要12個石英震盪器周期
$ [/ A( S6 F( z( D3 ]# N12MHz /12 = 1MHz =1us 所以每1us就送給8051一個脈波" K( e$ b8 V) f) z$ C) q0 M
; _+ L) n. R' j% e, K然後內部計時器是16位元 所以最高數到65536 就產生溢位中斷
+ `1 Y# d1 i5 b+ b5 I每1us就送入一個脈波計時器就加1, a# ?! l; s t/ D8 Y2 t9 Q
當計數器加到65536就中斷 這個意思是每65536us 就溢位中斷一次
: z1 ]' V5 ~$ q2 M' r7 g0 Q* h0 S9 w" D h) N1 Y
那如果要設定時間間隔為5ms秒的話) i' l9 A6 i! s* o
就代表每送入5000個1us的脈波就中斷一次
, f0 L% a4 {! C& d; T2 v但為什麼 計時器設定數值是
+ ~2 N, N6 z; ]65536-5000 =60536 再轉16進制 去分高低位元就好了?
, o6 |4 Q- N; m+ _60536不是意思是,當計數器內部加到60536 就產生中斷嗎?& Z) f7 C3 N0 X. B6 I
這樣不就是60536us中斷一次?
/ L2 o, e$ M8 W0 u/ o2 @6 {不是5ms中斷一次 |
|