この単純なロジックをどのように達成するには?if文による簡単なクエリ
void IRQHandler(void)
{
if(update_variable == 0)
{
if(CONDITION1)
{
/* MORE CODE */
update_variable = 1;
}
} /* Here i want to exit the loop */
if(update_variable == 1) /* execute in next loop */
{
if(CONDITION1)
{
/* MORE CODE */
/*UPDATE SOME ARRAY */
update_variable = 0; /* reset variable for next loop */
}
}
}
本質的に、2つの連続した割り込みで同じCONDITION1をチェックしたいと思います。 1回目の割り込みでは、変数の値を1に更新してループを終了します(条件が満たされていれば、以下を実行しないでください)。私が見ているように、私は "if"でブレーク条件を使うことはできません!私はしばらくここに打たれている!私を助けてください!
'if'は条件です。あなたが'中断する 'ループではありません! –
スイッチ付きの静的変数を使用します。 –