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

还是关于按键中断的问题9s12xep100

还是关于按键中断的问题9s12xep100

本帖最后由 freewind20 于 2011-7-25 17:40 编辑

做了一个9s12xep100按键中断,程序如下:
#define kb_ps       PPSH
#define kb_ie       PIEH
#define kb_if       PIFH
void delay(void){
  unsigned int i,j;
  for(i=0;i<1000;i++)
    for(j=0;j<1335;j++);
}

void main(void) {
  DisableInterrupts;
  key_up_d=0;  //输入
  key_down_d=0;
  kb_ps=0;
  kb_if=0xff;
  kb_ie=0x14;
  ledd=1;
EnableInterrupts;
  
  for(;;){
    //led=~led;
    //delay();
    //_FEED_COP(); /* feeds the dog */
  } /* loop forever */
  /* please make sure that you never leave main */
}
#pragma CODE_SEG __NEAR_SEG NON_BANKED
void interrupt 25 key_interrupts(void){
   DisableInterrupts;
   kb_if=0xff;
   if(key_up==0){
    led=0;
    delay();
   }   
   if(key_down==0){
    led=1;
    delay();
   }
   EnableInterrupts;
}
#pragma CODE_SEG DEFAULT
key_up按下灯亮,但是key_down按下灯没有灭。
用示波器看了一下,key_down连接的端口原来是高电平,按下按键变成低电平。
key_down按下后,能进入key_interrupts中断吗?
海纳百川  有容乃大
返回列表