我是微控制器 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 值。我确实明白上面的代码对于 step_value 并不完全正确,因为我将 step_value 初始化为 default_value。(那么,我如何修改初始 step_value = default_value 语句,以便在第一次执行循环时,我有一个 default_value,随后是最新的step_value?)但是,如果 step_value 等于我的 step_max 则只需做一些事情并随后中断(这部分有效!)。还,
所以,我想用最新的step_value有效地重置while循环,当我的step_value小于step_max时,寄存器的内容会重置吗?谢谢您的回复!