在线时间1 小时
UID202019
注册时间2008-11-9
NXP金币0
该用户从未签到
注册会员

- 积分
- 141
- 最后登录
- 1970-1-1
|
我想用PIT实现一个0.5ms的定时中断,分别初始化配置了,可是中断函数 Pit0ISR就是不执行呢,在Mode Entry Module里也配置了PIT的RUN模式,还是不行,
void initINTC(void)
{
INTC_InstallINTCInterruptHandler(Pit0ISR, 59, 5); /*将PIT0 ISR安装到中断向量表中*/
INTC.MCR.B.HVEN = 0; /* Initialize for SW vector mode */
INTC.MCR.B.VTES = 0; /* Use default vector table 4B offsets */
}
void initPIT(void)
{
PIT.PITMCR.R = 0x00000001; /* Enable PIT and configure stop in debug mode */
PIT.CH[0].LDVAL.R = 0x7D00; /* x/sysclks = Timeout=0.5ms */
PIT.CH[0].TCTRL.R = 0x00000003 ; /* Enable PIT0 interrupt & start PIT counting */
INTC.PSR[59].R = 0x01; /* PIT 1 interrupt vector with priority 1 */
}
void enableIrq(void)
{
INTC.CPR.B.PRI = 0; /* Lower INTC's current priority */
asm(" wrteei 1"); /* Enable external interrupts */
}
void initModeAndClks
{
...
...
...
ME.PCTL[92].R = 0x01; /* MPC56xxP PIT0: select ME.RUNPC[1] */ ?????这句是否有必要
/* PIT0 RUN configuration */
}
下面是中断执行函数:
void Pit0ISR(void)
{
/* CLear PIT 0 flag by writing 1 */
PIT.CH[0].TFLG.B.TIF = 1;
PIT_CN++;
SIU.GPDO[36].B.PDO = 1; //pin5
}
|
|