打印
[ZLG-MCU]

请问,如何在外部中断时读取ZLG7290键值

[复制链接]
1669|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
terance|  楼主 | 2007-6-1 10:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用ZLG7290时遇到问题,
发现片子很不稳定
开机10s内片子正常工作
用查询方式读键值可用,10s后按任意键无反映

现在打算用外部中断3进行中断处理,发现在外部中断3服务程序中读键值无效,
于是用key_int做标志位,进入外部中断3后key_int置位,再返回程序处理,也读不出键值···程序如下
 while(ok)
 {
  if(key_int)
  {
   key_value = 0;
   key_value = ZLG7290_GETKEY();
   key_int = 0;
  }
  
  //key_value = 0;
  //key_value = ZLG7290_GETKEY();
  switch(key_value)
         {
          case 1:
                disp_num = ZLG7290_KEYLEFT(disp_num);
                break;
          case 2:
                ZLG7290_KEYUP(disp_num, disp_data);         
                break;
          case 3:
                le_num = ZLG7290_LEVELMODE(le_num);
                break;
          case 4:
                ZLG7290_MODEOK(le_num, le_data, disp_data);
                break; 
          case 5:
                ok = ZLG7290_OK(ok);
                break;
          default:
                break;
          }
  }

void __irq IRQ_EINT3(void)
{
 uint32 i;
 i = IO0SET;
 if((i & BEEPCON)==0)
 {
     IO0SET = BEEPCON;
 }
 else
 {
     IO0CLR = BEEPCON;
 }
 //DelayNS(20);
 //key_int = ZLG7290_GETKEY();
 key_int = 1;
 while((EXTINT&1<<3)!=0)
 {
  EXTINT = 1<<3;
 }
 VICVectAddr = 0;
}

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

21

主题

35

帖子

0

粉丝