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
} 换其他IO口程序就没问题,PD7口已经设置无中断了,是和TLI有关吗?请各位大侠指教,谢谢 如果没有开启PD7中断 就不会产生中断,如果没做其它复用的话 就是个普通IO 。
或许其它硬件上的原因。
页:
[1]