智能车制作

标题: PIT0定时器中断为何进不去 [打印本页]

作者: tianma    时间: 2012-7-1 14:28
标题: PIT0定时器中断为何进不去
定时器的初始化函数如下:
//PIT寄存器的初始化,定时时长为80*100/(80M)=0.1ms
void PIT_init(){
  PITCFLMT_PITE=0;  //定时器通道禁止
  PITCE_PCE0=1;     //定时器通道0使能
  PITMTLD0=80-1;    //装载PIT微定时器 8位
  PITLD0=100-1;   //装载PIT定时器 16位
  PITINTE_PINTE0=1;  //PIT中断通道0中断使能
  PITCFLMT_PITE=1;  //定时器通道使能
}
中断子程序如下:
#pragma CODE_SEG  NON_BANKED
void interrupt 66 PIT0()
{
  Open_laser();//点亮激光管
  Path_server();//数据处理
  
  PITTF_PTF0=1;           //清除中断标志位
}

但是中断子程序始终进不去,求高手指导是怎么回事。

作者: tianma    时间: 2012-7-1 14:55
已解决,谢谢。
作者: 348499170    时间: 2012-7-2 09:09
tianma 发表于 2012-7-1 14:55
已解决,谢谢。

怎么解决的?
作者: tianma    时间: 2012-7-2 11:40
348499170 发表于 2012-7-2 09:09
怎么解决的?

我的问题不在于上面那段代码。在主函数中Enableintterrupts这句话写在了一个while循环的后面,而这个while循环一直在运行,没跳出去,所以中断一直未使能。调了一下顺序后就好了。




欢迎光临 智能车制作 (http://111.231.132.190/) Powered by Discuz! X3.2