beisongcrt 发表于 2016-3-13 09:31:04

STM8S105K4T6 中 TLI 和 PD7 按键的疑惑

为什么用PD7做按键,第一次按程序是对的,第二次按程序就不对了,第三次按又对了,为什么呢?
程序如下:
while (1)
{
static u16 c1=0;
    u8 i,j;
    if(btime)
    {
      KeyRead() ;
      if(Trg!=0x00)
      {
      i=Trg&0X88;
      }
      if(i == 0x80)
      {
      j = Cont&0x80;
      if(j==0x80)
      {
          c1++;
          btime = FALSE;   
         if(c1>5000)
         {
             LED3_ON;
         }else
            {
            if(c1>2000)
            {
                LED2_ON;LED3_OFF;
            }else
                {
                  if(c1>20)
                  {
                  LED1_ON;LED2_OFF;LED3_OFF;
                  }
                }
            }      
         }else{i=0;c1=0;j=0;}         
      }
      if (i == 0x08)
      {
      LED1_OFF;LED2_OFF;LED3_OFF;i=0;
      }
   }
}
}

void KeyRead(void)
    {
       unsigned char ReadData = PIND^0x88;   // 1
      Trg = ReadData & (ReadData ^ Cont);      // 2
      Cont = ReadData;                              // 3
    }

beisongcrt 发表于 2016-3-13 09:34:49

换其他IO口程序就没问题,PD7口已经设置无中断了,是和TLI有关吗?请各位大侠指教,谢谢

xmshao 发表于 2016-3-13 22:01:20

如果没有开启PD7中断 就不会产生中断,如果没做其它复用的话 就是个普通IO 。

或许其它硬件上的原因。
页: [1]
查看完整版本: STM8S105K4T6 中 TLI 和 PD7 按键的疑惑