|
EDA365欢迎您!
您需要 登录 才可以下载或查看,没有帐号?注册
x
請問一下,單晶片計時器設定的觀念
2 d* a, l) c. |4 S看完書上還是沒很了解..
% F; T) }4 b7 |有沒有人可以跟我說一下我的盲點在哪..
$ s- t* D+ V& z
1 N5 y i x( Q6 [0 `單晶片用12MHz的石英震盪器5 ?5 t- }) F# z4 E+ {; \
然後因為8051一個機械周期
3 y% }% ?! v6 u9 Y需要12個石英震盪器周期 Y1 ]5 E' S, Z5 Z/ m0 O
12MHz /12 = 1MHz =1us 所以每1us就送給8051一個脈波0 p1 f& W" A1 f( r' ~+ P! |: }
% J0 o f1 g9 b D9 p
然後內部計時器是16位元 所以最高數到65536 就產生溢位中斷2 k% z# c9 ?5 Q2 O0 |+ O' Z5 e
每1us就送入一個脈波計時器就加1
% {4 `8 @/ W3 \3 _當計數器加到65536就中斷 這個意思是每65536us 就溢位中斷一次4 ]( U5 b! e8 h$ z2 z
2 \" n* I2 i) q( j8 L# j: [
那如果要設定時間間隔為5ms秒的話
" D) j0 J" d- z8 ^+ l$ G就代表每送入5000個1us的脈波就中斷一次
1 |3 | _ e: |但為什麼 計時器設定數值是- s/ Y$ E5 S' j2 @! u9 y# p
65536-5000 =60536 再轉16進制 去分高低位元就好了?
5 f" I, Z+ F4 ~1 o8 n% d$ r! B6 d60536不是意思是,當計數器內部加到60536 就產生中斷嗎?! [& I% J9 c; Y H) n" @
這樣不就是60536us中斷一次?( p5 l* t. M4 i
不是5ms中斷一次 |
|