首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

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

2013-02-24 
飞思卡尔MPC5674芯片,PIT定时中断本帖最后由 coffey0304 于 2013-01-18 12:34:41 编辑最近在用飞思卡尔MPC

飞思卡尔MPC5674芯片,PIT定时中断
本帖最后由 coffey0304 于 2013-01-18 12:34:41 编辑 最近在用飞思卡尔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)
  {
  
  }

} PIT INTC 中断
[解决办法]
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

热点排行