|
EDA365欢迎您!
您需要 登录 才可以下载或查看,没有帐号?注册
x
請問一下,單晶片計時器設定的觀念7 w' X" ^1 b' ^% G+ i
看完書上還是沒很了解.., h. w4 V4 d+ W/ D( F- O
有沒有人可以跟我說一下我的盲點在哪..0 K2 @0 }) K- |( O7 ]& h: p! C
Z) P0 x, r9 X8 x單晶片用12MHz的石英震盪器
3 a0 S9 k! g9 j6 ~5 T7 t4 c然後因為8051一個機械周期
5 c2 X) ?' L: f需要12個石英震盪器周期' D8 b% x: O/ c
12MHz /12 = 1MHz =1us 所以每1us就送給8051一個脈波* e4 @. e+ u) y ^7 `
# e( A2 u, _( Y然後內部計時器是16位元 所以最高數到65536 就產生溢位中斷3 d4 K7 @; ~8 l/ \4 k# i
每1us就送入一個脈波計時器就加1. P$ v7 L% a. V' a G4 M. ]
當計數器加到65536就中斷 這個意思是每65536us 就溢位中斷一次* d; k" X1 S6 h$ Y# {, h
5 c7 e0 \% a% {7 C q* I那如果要設定時間間隔為5ms秒的話
2 Z+ |/ d0 K1 I2 U0 G! ]就代表每送入5000個1us的脈波就中斷一次 2 Q# U( m9 \8 F
但為什麼 計時器設定數值是
8 N: @2 D. {3 x/ _& F2 v65536-5000 =60536 再轉16進制 去分高低位元就好了?- g8 v: O3 f, }, \
60536不是意思是,當計數器內部加到60536 就產生中斷嗎?% d7 X @4 ~3 F1 w7 c
這樣不就是60536us中斷一次?
8 J) z2 ]- c$ K; \! Q不是5ms中斷一次 |
|