(Kinetis K60) PIT定時中斷


PIT_LDVALn寄存器的值為計數的值。當計數遞減為0時,進入中斷服務函數,而計數遞減的周期是通過kinetis的BUS時鍾分頻……

PIT的時鍾源是總線時鍾。總線時鍾是由MCGOUTCLK 經OUTDIV2分頻得到。(內核時鍾是經OUTDIV1分頻得到)

  SIM_CLKDIV1 &= ~(7<<25);
 
  SIM_CLKDIV1 |= (1<<24);

 

初始化 PIT0定時

void PIT0_Init(void)
{
 
    SIM_SCGC6 |= (1<<23);
   
    PIT_MCR = 0;
    
    PIT_LDVAL0 =  50000000;
   
    PIT_TCTRL0 |= (3); 
   
    enable_irq(68);
   
}

isr.h文件 重定義 中斷服務函數

#include "project.h"

#undef  VECTOR_084
#define VECTOR_084    PIT0_IRQHandler    

extern void PIT0_IRQHandler(void);  

isr.C文件 編寫中斷服務函數

#include "isr.h"

char str[]="PIT0 1000ms ";
U8 i;
void PIT0_IRQHandler(void)
{
  for(i=0;str[i]!='\0';i++)
    Uart4_SendByte(str[i]);
  PIT_TFLG0 |= PIT_TFLG_TIF_MASK;   //清中斷標志
  PIT_MCR = 0;    
}

程序運行……


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM