目前狀況:
PA為按鈕1
PB為按鈕2
先按住按鈕1 再按按鈕2 LightBar_Mode++
先按住按鈕2 再按按鈕1 也是LightBar_Mode++
LightBar_Mode會一次增加2
想變成:
先按住按鈕1 再按按鈕2 LightBar_Mode++
先按住按鈕2 再按按鈕1 LightBar_Mode--
LightBar_Mode++時增加1
LightBar_Mode--時減少1
請問各位大神 下列程式該如何改寫呢?
(小弟剛入行 還需要各位大神幫幫忙 感恩^^)
void GPAB_IRQHandler(void)
{
if( (GPIO_GET_IN_DATA(PA)&0x08) || (GPIO_GET_IN_DATA(PB)&0x02) )
return;
temp = (GPIO_GET_IN_DATA(PA) && 0x08 >0 ? 0x01 : 0x00) | (GPIO_GET_IN_DATA(PB) && 0x02 > 0 ? 0x01 : 0x00);
switch(temp)
{
case 0x03:
case 0x01:
case 0x00:
case 0x02:
LightBar_Mode++;
break;
}
switch(LightBar_Mode)
{
case 0:
PA11 = 0;
PA9 = 0;
PD8 = 0;
PD10 = 0;
PA10 = 0;
PA8 = 0;
PD9 = 0;
PD11 = 0;
break;
case 1:
PA11 = 1;
PA9 = 0;
PD8 = 0;
PD10 = 0;
PA10 = 0;
PA8 = 0;
PD9 = 0;
PD11 = 0;
break;
}
這樣不知是不是你要的
while(1)
{
if(PA8 && !PB3)
{
while(PA8)
{
if(PB3)
{
LightBar_Mode++;
break;
}
}
}
else if(!PA8 && PB2)
{
while(PB2)
{
if(PA8)
{
LightBar_Mode--;
break;
}
}
}
}
GPIO_GET_IN_DATA(PA) && 0x08 >0
我覺得不太行
a = 1 || 1 > 1;
//a = 1
參考https://ideone.com/DpnoVQ
會是>0先判斷
沒有括號 是不行的