|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
請問一下,單晶片計時器設定的觀念
+ D) O7 D3 U2 x. D p s4 J看完書上還是沒很了解.. f9 X3 b; C7 L, U; f7 S
有沒有人可以跟我說一下我的盲點在哪..
" q- k0 j f+ j) t0 U3 i2 e- G2 ~( b% q; n# {) ^ W
單晶片用12MHz的石英震盪器
. a' F9 v" h, e' H: o; r然後因為8051一個機械周期' i: v4 x2 K m" [ v4 ^& f
需要12個石英震盪器周期
1 c/ ]3 {( ^' s0 Y$ l12MHz /12 = 1MHz =1us 所以每1us就送給8051一個脈波: v" U B0 I1 h1 A, C
8 y0 u, ^0 {2 n
然後內部計時器是16位元 所以最高數到65536 就產生溢位中斷0 H$ V5 a8 B; V) E M6 s2 [
每1us就送入一個脈波計時器就加1
) H% B3 D# b8 a當計數器加到65536就中斷 這個意思是每65536us 就溢位中斷一次
0 }3 e! o1 |- _' A7 X6 B4 `) |
' e" f4 u1 R" M那如果要設定時間間隔為5ms秒的話
l$ `' ^0 J/ \4 p( `( J0 g1 Y就代表每送入5000個1us的脈波就中斷一次 0 W) \+ ~. b7 i1 R! F+ m m
但為什麼 計時器設定數值是) k. o7 q" y# |: f6 ^6 r: ?3 G
65536-5000 =60536 再轉16進制 去分高低位元就好了?
$ s" y# C4 u: E8 V3 w0 z60536不是意思是,當計數器內部加到60536 就產生中斷嗎?
! j7 L+ `* X0 s' z8 I: t5 x 這樣不就是60536us中斷一次?1 k. j# U' ?) p3 Y
不是5ms中斷一次 |
|