|
EDA365欢迎您!
您需要 登录 才可以下载或查看,没有帐号?注册
x
請問一下,單晶片計時器設定的觀念$ T% T: G3 ^/ }# S
看完書上還是沒很了解..$ \7 u9 n: M7 Y% O" o1 ]* _
有沒有人可以跟我說一下我的盲點在哪..
( V* I! I# v) }1 P* E! ?* N: [' ^ D& X8 t( k
單晶片用12MHz的石英震盪器
; n A# o$ `3 x; J3 n" |" F然後因為8051一個機械周期! B3 h/ Q* k, u* I6 F. B
需要12個石英震盪器周期
9 r7 c& Z2 @9 ?& q4 g( g12MHz /12 = 1MHz =1us 所以每1us就送給8051一個脈波
R1 r# q/ s$ i3 T Y. m
4 c" Y d, A6 Z然後內部計時器是16位元 所以最高數到65536 就產生溢位中斷 q |$ @( F7 i6 ~6 e) q, z& b
每1us就送入一個脈波計時器就加18 O+ m. l8 k, j4 F2 k
當計數器加到65536就中斷 這個意思是每65536us 就溢位中斷一次2 h6 ^3 r% S0 V6 c
2 V" U; n: H, o; S# E' p
那如果要設定時間間隔為5ms秒的話0 ^& Z8 t& ~" Z* c3 S+ E2 j; o
就代表每送入5000個1us的脈波就中斷一次 - n5 `5 E$ N) s2 Y: I
但為什麼 計時器設定數值是4 m" L9 Z9 D' L* l$ N
65536-5000 =60536 再轉16進制 去分高低位元就好了?( q" o5 R' c2 l' A! b2 Q
60536不是意思是,當計數器內部加到60536 就產生中斷嗎?2 h) A6 y& t: h e
這樣不就是60536us中斷一次?! z2 r3 ]& }# k z
不是5ms中斷一次 |
|