本帖最后由 122541325 于 2017-1-27 18:34 编辑
刚接触飞思卡尔,在玩K64,玩到PIT定时器时遇到了个问题,哪个大哥大姐帮忙看看。配置完后,同过仿真发现PIT计数器不断在运行,但是就是不进入中断,不知哪里配置错误了。代码如下:
void Pit_Init()
{
Pit_config(PIT0,PIT_s);
Pit_NVIC();
}
void Pit_config(PITn_e pitx ,uint32_t cnt)
{
SIM->SCGC6 |= SIM_SCGC6_PIT_MASK ; //使能PIT时钟
PIT->MCR &= ~PIT_MCR_MDIS_MASK; //开启PIT模块时钟 ,0使能;1禁用
PIT->MCR &= ~PIT_MCR_FRZ_MASK; //0:调试模式PIT定时器继续运行;1:调试模式PIT定时器停止运行
PIT_LDVAL(pitx) = cnt-1; //设置定时频率
PIT_TCTRL(pitx) = PIT_TCTRL_TIE_MASK; //使能PIT中断请求
PIT_Flag_Clear(PIT0);
PIT_TCTRL(pitx) = PIT_TCTRL_TEN_MASK; //使能PIT
//NVIC_SetPriority(PIT0_IRQn,0);
}
void Pit_NVIC(void)
{
NVIC_SetPriorityGrouping(NVIC_PriorityGroup_0);
NVIC_SetPriority(PIT0_IRQn,NVIC_EncodePriority(NVIC_PriorityGroup_0,0,1));/* PIT抢占优先级0,子优先级1*/
NVIC_EnableIRQ(PIT0_IRQn);
}
void PIT0_IRQHandler(void)
{
PIT_Flag_Clear(PIT0);
//T4_LED_Toogle;
T4_LED_ON;
}
一周热门 更多>