|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
請問一下,單晶片計時器設定的觀念
* G2 o, U7 W* Y2 z2 n看完書上還是沒很了解..
$ {% ~, z- Q9 \有沒有人可以跟我說一下我的盲點在哪..6 j9 c1 h. p& r
) v5 \0 L1 f0 m6 U. g$ y1 U9 A4 W單晶片用12MHz的石英震盪器
. U% P+ G( J- T* G然後因為8051一個機械周期
; U& |2 V! N9 j9 q% e/ b需要12個石英震盪器周期6 U, K% }& X% R, C( F
12MHz /12 = 1MHz =1us 所以每1us就送給8051一個脈波
& z0 A& R% e2 v0 b7 L' S
4 G# H- ?( \. J: d, E1 \- U% {然後內部計時器是16位元 所以最高數到65536 就產生溢位中斷- H# `/ S6 B3 ?$ R
每1us就送入一個脈波計時器就加1) d$ u1 E" v, Y* {% r) o
當計數器加到65536就中斷 這個意思是每65536us 就溢位中斷一次
7 S8 v- A/ y$ K/ e: ^
" z4 _) v" }9 {: `3 V7 r那如果要設定時間間隔為5ms秒的話8 |4 |2 v2 c' w, O0 @/ E# b
就代表每送入5000個1us的脈波就中斷一次 6 p* j( f( k, z* ?
但為什麼 計時器設定數值是$ A% A+ i4 z$ X+ T7 h* j
65536-5000 =60536 再轉16進制 去分高低位元就好了?
0 T. N! k+ @( g$ R! A/ m60536不是意思是,當計數器內部加到60536 就產生中斷嗎?
. p$ U0 g' L" U, x! X; @0 e# S 這樣不就是60536us中斷一次?$ Y8 |3 m& g- d0 c; N2 F
不是5ms中斷一次 |
|