|
EDA365欢迎您!
您需要 登录 才可以下载或查看,没有帐号?注册
x
請問一下,單晶片計時器設定的觀念
- M) C# n& B2 o4 N a0 {% b/ }看完書上還是沒很了解..* g7 }; m8 x: c# Z9 l" O" H8 Y
有沒有人可以跟我說一下我的盲點在哪..; ]6 V% a6 i+ n. c
) t0 f% [- t- b* ^ V9 J" t
單晶片用12MHz的石英震盪器
3 W6 @2 I% g: i4 z+ ?/ X然後因為8051一個機械周期
6 _4 z A9 x5 |/ i$ N8 _需要12個石英震盪器周期+ F0 B1 B2 L d. @% x
12MHz /12 = 1MHz =1us 所以每1us就送給8051一個脈波+ R [! n/ N8 S
9 h8 a% M2 W+ q, T' `; w
然後內部計時器是16位元 所以最高數到65536 就產生溢位中斷( G) M4 x9 f$ F1 F# e% Q {; z. P$ `3 q
每1us就送入一個脈波計時器就加1+ M. G& }- j1 C/ h6 v- ^: I( M Q
當計數器加到65536就中斷 這個意思是每65536us 就溢位中斷一次
% ?3 s% e3 K5 H: m: h2 R3 W1 s6 d) O) _/ M1 |- J0 h
那如果要設定時間間隔為5ms秒的話
$ y |9 L8 u' \; r, \( c就代表每送入5000個1us的脈波就中斷一次 " g [" @. K9 O: R8 I0 Q
但為什麼 計時器設定數值是; J8 [1 b$ ^" m
65536-5000 =60536 再轉16進制 去分高低位元就好了?0 _/ K( f0 {$ |
60536不是意思是,當計數器內部加到60536 就產生中斷嗎?
/ Q* A' u1 R& { ]! R 這樣不就是60536us中斷一次?
8 i+ b x6 s2 I: H5 f0 ]不是5ms中斷一次 |
|