(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;    
}

程序运行……

posted @ 2013-06-07 16:34  默默地EEer  阅读(3880)  评论(0编辑  收藏  举报