(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; }
程序运行……