私はマイクロコントローラーの C プログラミングの初心者であり、ネストされたループの使用に関していくつかの問題に直面しています。以下は、私の C コードにあるサンプル コンストラクトです。問題点は後述
// I am trying to ramp down the while loop
while (i>= stop_value)
{
step_value = default_value;
R32(a particular register, content_register);
if (content_register = a_set_value)
{
if( step_value <= step_max)
{
step_value = step_value +1;
i=start_value;
continue;
}
if(step_value =step_max)
{
// do something;
break;
}
}
WR32(a particular register, content_reset_register); // resetting the register
i=i-1;
}
基本的に、私は次のことをしようとしています: stop_value に達するまでループをランプダウンし、ランプダウン中に特定のレジスタを読み取ります。レジスタに定義済みの値がある場合は、step_value<= step_max かどうかを確認します。step_value < step_max の場合、continue ステートメントを使用して while ループをリセットし、i を初期開始値に設定します。この時点で、step_value はデフォルトのステップ値ではなく、最新の値である必要があります。step_value を default_value に初期化するため、上記のコードが step_value に対して完全に正しくないことは理解しています。 step_value?) しかし、step_value が私の step_max と等しい場合は、何かを実行してから中断します (この部分は機能します!)。また、
したがって、最新の step_value で while ループを効果的にリセットしたいのですが、step_value が step_max 未満の場合、レジスタの内容はリセットされますか? 返信ありがとうございます。