Board logo

标题: 【求助】关于DZ60中断问题 [打印本页]

作者: kingeast16    时间: 2009-12-8 16:39     标题: 【求助】关于DZ60中断问题

我写了一个简单的程序,用PTA0的中断控制LED灯的闪烁,可是一旦中断第一次触发后,不管PTA0管脚的电压如何,终端服务程序始终能执行,灯不停的闪,请教一下各位,万分感谢!

void GPIO_Init(void)   
{      
    PTADD_PTADD0 = 0;           
      
    PTBDD_PTBDD3 = 1;  /* PTB3 is output to LED2 */  
}

void PGint(void){
  PTASC_PTAACK=0; //屏蔽中断  
  PTAPE_PTAPE0=1; //使能上拉器件
  PTAES_PTAES0=0; //上啦器件接入,低电平触发
  PTASC_PTAMOD=0;//边沿触发
  PTAPS_PTAPS0=1; //使能A0的中断
  PTASC_PTAACK=0; //清除中断
  PTASC_PTAIE=1;  //使能A口中断

}



void main(void) {
  MCG_Init();     /* Clock Generator initialization */
      
  GPIO_Init();    /* GPIO configuration */
  PGint();           //中断初始化
  PTBD_PTBD3=1; //关LED
  EnableInterrupts; /* enable interrupts */




  for(;;) {
}



void interrupt 22 PTA_ISR(void)
{
  PTAPS_PTAPS0=0; //使能A0的中断
  PTASC_PTAACK=0; //清除中断
  PTBD_PTBD3=!PTBD_PTBD3;
  PTAPS_PTAPS0=1; //使能A0的中断  
}
作者: ffery    时间: 2009-12-28 10:39

你的这段程序能实现LED闪烁吗,我没有看出来那里有闪烁的条件?
PTBD_PTBD3=!PTBD_PTBD3;是这一句吗?
如果是这一句,就是闪烁你用肉眼也是看不到的。我觉的这段程序的整体框架不能实现你所想的LED的闪烁功能。另外
PTASC_PTAACK=0; //清除中断   
据我对DZ60的了解,我认为 这一句是没有意义的。PTASC_PTAACK的一个重要功能是清除中断标记PTASC_PTAIF的,应当是PTASC_PTAACK=1; 这样写才对。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0