首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

【求助】关于DZ60中断问题

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