打印

一个端口上挂多个外部中断的判断

[复制链接]
1407|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
solo777|  楼主 | 2012-8-16 17:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我一个端口上挂了4个按键,编码器3个接线(A B Z)

我这样写中断,有问题吗?(外部按键,编码器,都是下降沿有效。设置cpu的中断为上下都产生中断)


INTERRUPT_HANDLER(EXTI_PORTB_IRQHandler, 4)
{


    pb_cu_data=GPIO_ReadInputData(GPIOB);
    //异或判读数据跳变
    exit_data=pb_la_data^pb_cu_data;


   if(exit_data)
   {
     //如果是高电平,非0,那就跳过判断
    if(pb_cu_data&exit_data)
     goto bb1;

    switch(exit_data)
      {
        case 0x10:
            uart_putchar ('0');
            en_count=0;
            break;
         case 0x20:
           // uart_putchar ('1');
           uart_putchar((u8)(en_count));
            break;
         case 0x40:
            uart_putchar ('2');
             break;
         case 0x80:
             uart_putchar ('3');
            break;
         case 0x2:
             uart_putchar ('b');
             en_count++;
            break;
         case 0x4:
             uart_putchar ('z');
               break;
         case 0x6:
         uart_putchar ('Z');
            break;
      }
   }




bb1:
  pb_la_data=pb_cu_data;


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

本版积分规则

83

主题

375

帖子

2

粉丝