飞思卡尔MPC5674芯片,PIT定时中断

少帅2016 2013-01-18 12:04:32
最近在用飞思卡尔MPC5674芯片,来测试PIT定时中断,
main函数如下。当定时器定时满的时候,中断标志位是为1的,且中断使能位也置1了,
而中断服务程序却死活没有执行。
望大虾支招,跪谢!


void INTC_ISR_Response_1(void)/*中断服务程序*/
{
SIU.GPDO[179].B.PDO =!(SIU.GPDO[179].B.PDO);
}

void main(void)
{
/*DIO*/
SIU.PCR[179].B.PA = 0x00;
SIU.PCR[179].B.IBE = 0;
SIU.PCR[179].B.OBE = 1;
SIU.GPDO[179].B.PDO = 1;

/*Watch dog,be needed ????*/
SWT.MCR.B.STP=1;
SWT.MCR.B.FRZ=1;
SWT.MCR.B.WEN=0;

/*Interrupt Controller*/
INTC.MCR.B.HVEN = 0; // Soft vector mode
INTC.MCR.B.VTES = 0; // 4 byte offset between entries
INTC.EOIR.R = 0;
INTC.CPR.B.PRI = 0;

INTC_InitINTCInterrupts();
INTC_InstallINTCInterruptHandler( INTC_ISR_Response_1,301, 15 );

/*PIT timer*/
PIT.CH[0].LDVAL.R=1000;
PIT.CH[0].TFLG.B.TIF=1;
PIT.CH[0].TCTRL.B.TIE=1;/* Interrupt enabled */
PIT.CH[0].TCTRL.B.TEN=1;/* Timer enabled */

while(1)
{

}

}
...全文
602 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
jdygrdzh 2013-01-19
  • 打赏
  • 举报
回复
PIT初始化没问题,但是你的中断控制器初始化和文档给出的流程不一定一致。由于你调用了函数,不确定你的流程是不是正确。这是标准流程,请仔细核对。 interrupt_request_initialization: configure VTES and HVEN in INTC_MCR configure VTBA in INTC_IACKR raise the PRIn fields in INTC_PSRn set the enable bits or clear the mask bits for the peripheral interrupt requests lower PRI in INTC_CPR to zero enable processor recognition of interrupts
woshi_ziyu 2013-01-18
  • 打赏
  • 举报
回复
看看中断号是否设置正确
少帅2016 2013-01-18
  • 打赏
  • 举报
回复
引用 1 楼 woshi_ziyu 的回复:
看看中断号是否设置正确
中断号是301,没有问题的。
少帅2016 2013-01-18
  • 打赏
  • 举报
回复
中断号是301,没有问题的。

27,511

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧