📄 k60-keil
字号:
/*============================================================================
文件名称:PIT.c
功能概要:K60 PIT
版权所有:卿丞数码
============================================================================*/
#include <MK60N512MD100.h> // MK60N512MD100 Definitions
#include "PIT.h" //包含PIT驱动程序头文件
#include "Serial.h"
/*============================================================================
函数名称:PIT_Init
函数返回:无
参数说明:PIT_Channel:0-3 Period:计算公式 定时时间=Period*1/外设时钟频率
功能概要:初始化PIT模块。
=============================================================================*/
void PIT_Init(IRQn_Type PIT_Channel,uint32_t Period) //外设时钟为系统时钟一半即50M (定时时间= Period*1/50us )
{
SIM->SCGC6 |= SIM_SCGC6_PIT_MASK; //PIT Clock enable
PIT->MCR &=~ PIT_MCR_MDIS_MASK ;//Clock for PIT Timers is enabled Timers continue to run in debug mode
switch(PIT_Channel)
{
case PIT0_IRQn:
{
PIT->CHANNEL[0].LDVAL = Period-1;
PIT->CHANNEL[0].TCTRL = PIT_TCTRL_TIE_MASK |PIT_TCTRL_TEN_MASK;
NVIC_EnableIRQ(PIT0_IRQn);
}break;
case PIT1_IRQn:
{
PIT->CHANNEL[1].LDVAL = Period-1;
PIT->CHANNEL[1].TCTRL = PIT_TCTRL_TIE_MASK |PIT_TCTRL_TEN_MASK;
NVIC_EnableIRQ(PIT1_IRQn);
}break;
case PIT2_IRQn:
{
PIT->CHANNEL[2].LDVAL = Period-1;
PIT->CHANNEL[2].TCTRL = PIT_TCTRL_TIE_MASK |PIT_TCTRL_TEN_MASK;
NVIC_EnableIRQ(PIT2_IRQn);
}break;
case PIT3_IRQn:
{
PIT->CHANNEL[3].LDVAL = Period-1;
PIT->CHANNEL[3].TCTRL = PIT_TCTRL_TIE_MASK |PIT_TCTRL_TEN_MASK;
NVIC_EnableIRQ(PIT3_IRQn);
}break;
}
}
///*============================================================================
//函数名称:PIT0_IRQHandler
//函数返回:无
//参数说明:
//功能概要:PIT0中断
//=============================================================================*/
//void PIT0_IRQHandler(void)
//{
// if((PIT->CHANNEL[0].TFLG&PIT_TFLG_TIF_MASK)!=0)
// {
// PIT->CHANNEL[0].TFLG |= PIT_TFLG_TIF_MASK ;// Clear Timer Interrupt Flag
//// Ser_PutChar(UART3,'0');
// }
//
//}
/*============================================================================
函数名称:PIT1_IRQHandler
函数返回:无
参数说明:
功能概要:PIT1中断
=============================================================================*/
//void PIT1_IRQHandler(void)
//{
// if((PIT->CHANNEL[1].TFLG&PIT_TFLG_TIF_MASK)!=0)
// {
// PIT->CHANNEL[1].TFLG |= PIT_TFLG_TIF_MASK ; // Clear Timer Interrupt Flag
// //再次写中断代码
//// Ser_PutChar(UART3,'1');
//
// }
//}
/*============================================================================
函数名称:PIT2_IRQHandler
函数返回:无
参数说明:
功能概要:PIT2中断
=============================================================================*/
void PIT2_IRQHandler(void)
{
if((PIT->CHANNEL[2].TFLG&PIT_TFLG_TIF_MASK)!=0)
{
PIT->CHANNEL[2].TFLG |= PIT_TFLG_TIF_MASK ;// Clear Timer Interrupt Flag
//再次写中断代码
// Ser_PutChar(UART3,'2');
}
}
/*============================================================================
函数名称:PIT3_IRQHandler
函数返回:无
参数说明:
功能概要:PIT3中断
=============================================================================*/
void PIT3_IRQHandler(void)
{
if((PIT->CHANNEL[3].TFLG&PIT_TFLG_TIF_MASK)!=0)
{
PIT->CHANNEL[3].TFLG |= PIT_TFLG_TIF_MASK ; // Clear Timer Interrupt Flag
// Ser_PutChar(UART3,'3');
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -