|
EDA365欢迎您!
您需要 登录 才可以下载或查看,没有帐号?注册
x
請問一下,單晶片計時器設定的觀念
5 u8 W! L- Z" e& F3 M b5 ]3 x看完書上還是沒很了解..: \9 z! l* i% u6 |0 ~. o
有沒有人可以跟我說一下我的盲點在哪..9 v; c% |7 s$ C9 L; l. G6 `
, S5 U+ D" r F% h& X單晶片用12MHz的石英震盪器
: Z7 L9 e5 w4 ~* J然後因為8051一個機械周期
# V! `6 f" F, g/ I: G% a8 S需要12個石英震盪器周期& y1 @% C. U# ] m- S X
12MHz /12 = 1MHz =1us 所以每1us就送給8051一個脈波% p/ F9 W+ y: K* Q% G
2 P, c v1 d) t) C9 i; \: d1 _4 d
然後內部計時器是16位元 所以最高數到65536 就產生溢位中斷
0 L$ u% u* C; J1 |& o+ G- B每1us就送入一個脈波計時器就加1
6 Y2 \% e1 I. O7 g當計數器加到65536就中斷 這個意思是每65536us 就溢位中斷一次) k8 Q* `' M2 D* b$ C; b3 k5 @$ Q
5 i2 e6 ~% W/ q2 X/ o) K6 O
那如果要設定時間間隔為5ms秒的話( T3 ]9 S+ a$ Z
就代表每送入5000個1us的脈波就中斷一次
& a. D9 G% w" I* \- M5 v6 \1 Y5 A2 u但為什麼 計時器設定數值是5 L" j& y: P0 |. e1 C/ }/ R
65536-5000 =60536 再轉16進制 去分高低位元就好了?* O! j; K/ m e2 N9 d
60536不是意思是,當計數器內部加到60536 就產生中斷嗎?
. t' Z3 X0 d: I0 `# h 這樣不就是60536us中斷一次?
/ }9 N0 s1 f/ f不是5ms中斷一次 |
|