K60 PIT定時器
Systick是什么呢,它是Cortex內核的定時器,也就是說不管是M3M4,不管是ST的單片機還是飛思卡爾的單片機,這個定時器的結構和用法是一樣的,它也可以產生周期中斷,也可以作為精準延時函數(shù)。但是他的真正用武之地值操作系統(tǒng)的嘀嗒時鐘,也就是為uC/OS等操作系統(tǒng)提供時鐘節(jié)拍。一來他是內核級別的時鐘,中斷優(yōu)先級比其他外設模塊要高;二來他比較通用,可以不用改任何代碼就移植到其他單片機上。
那么LPTMR、PDB呢?這兩個是飛思卡爾Kinetis特有的外設模塊,也可以用來做定時器,產生周期中斷,但是他們也是各自有各自特殊的用途的,LPTMR可以用來做脈沖累加器,用來測量脈沖波的頻率;PDB是可編程延時模塊,他的主打功能是產生DAC、ADC模塊的硬件觸發(fā)信號,來使他們能夠自主的、不需要用戶軟件來進行工作。
總結上面說的就是,Systick使用在操作系統(tǒng)里的(較高端的樣子),LPTMR用來計數(shù)脈沖,PDB用來觸發(fā)其他外圍設備。而PIT則是簡簡單單的周期定時,利用拉普蘭德庫庫函數(shù),可以輕松掌握。
先說說和之前單片機不同之處;PIT可以定時Us,Ms,S定時單位很多,因為底層庫函數(shù)已經幫你寫好了。所以要定時多長一段時間,個人感覺比51和PIC都簡單。貼上初始化
void
{
}
然后就是中斷函數(shù)
void
{
}
void
{
}
我想達到的效果是有4個LED,第一個LED亮3下后第二個LED翻轉,第二個LED亮3下后第三個LED翻轉,以此類推
void
{
}
還是提醒一下,不要忘了初始化,聲明函數(shù)和結構體變量
還有有木有發(fā)現(xiàn)(學51的不用看),和PIC不同,它沒有涉及中斷標志位,沒有軟件清零。因為對應寄存器PIT_CVALn(自減)減到0時,另一個寄存器PIT_LDVALn會把我們之前存進去的初始值重新賦給PIT_CVALn。中斷標志位自動清。注意它是減,不是加,所以一開始不用去算該給多少初值,直接給我們想要定時的時間就可以了。
評論