|
你沒有理解定時器的工作原理啊。
第一:定時器的計時原理——根據(jù)時鐘的個數(shù)進(jìn)行計數(shù)(簡單來說就是數(shù)個數(shù)),而時鐘的周期是由晶振確定的,有多少個時鐘脈沖,就可以知道是多少時間。舉例來說,常用晶振12M,51單片機12分頻后,時鐘就是1M,周期就是1us。如果你要定時10us,就要讓定時器數(shù)10個脈沖。
第二:定時器中斷的原理——就是溢出。你說的那兩個初值寄存器,高低8位,一共16位,就是最大值65535,即0xFF,如果再加一,則會溢出,它們的值則回零,溢出的一位,就產(chǎn)生中斷標(biāo)志。
第三:結(jié)合上面兩條知識,就可以算出原本應(yīng)該在初值寄存器中的初值了——還是以上面講的例子為例:需要定時10us,使用的是定時方式1,即16位定時器,要溢出產(chǎn)生中斷,需要65536,但只計數(shù)10個脈沖,所以,初值就是65536-10=65526,換成十六進(jìn)制,0xfff6。
第四:不同的工作方式,也有不同的計算,但都要有上面的基礎(chǔ)知識。常用的就是16位定時器和8位自動重裝定時器。
我這個說明也許不夠細(xì),你要再找找相關(guān)資料和書看看。沒基礎(chǔ)是不能走下去的哦。 |
|