while (1)
{
c = getchar();
switch(state)
{
case 0:
if((GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0) == Bit_SET))
{
state=1;
}
if ( c=='p')
{
state = 2;
}
break;
case 1 :
if((GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0) != Bit_SET))
{
state = 0;
}
break;
case 2:
iprintf("%s",led_name_arr[i]);
if (c=='r')
{
state=0;
}
break;
}
}
printfを印刷してからstate2に到達したい..これをどのように達成できるか。以下は私が試したことと行き詰まっている場所です。
擬似コード:
if ( c==P)
{
printf(" hi");
state 2;
}
**この場合、printfステートメントは実行されません**または
case 2:
iprintf("%s",led_name_arr[i]);
if (c=='r')
{
state=0;
}
break;
**この場合、printfステートメントはループで印刷を続けます**
whileループを停止したくないのですが、連続ループではケース0が機能し続けたいのですが、入力pを取得すると、printfを一時停止して実行し、arが取得されるまでケース0を再開します。 ..したがって、プログラムは停止することはありませんが、それぞれのケースを実行するために「P」または「R」のいずれかを取得するのを待ちます...私は理にかなっていると思います
どんな助けでもありがたいです。