目前狀況:
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先判斷
沒有括號 是不行的