超级循环是一个无限循环,仅适用于嵌入式c编程,因为您必须运行代码非常长时间,并且希望在机器人或其他任何行为发生变化时显式终止。 的 超容量 强> 像
while(1){ // Your code // exit condition } for(;;) { }
这指的是通常位于的永恒循环 main() “裸机”系统(无操作系统),因为这种系统永远不会从主系统返回。典型的裸机嵌入式系统如下所示:
main()
void main (void) { // various initializations for(;;) // "super loop" or "main loop" { // do stuff } }
MCU是连续或更好运行的设备,它在通电时执行指令(通常)。
因此,虽然循环在这里迫使MCU做某事,即使循环为空,它也只是绕圈。
但它必须做一些事情,因为它与您拥有的PC程序不同 return 在主要功能结束时。
return
如果你没有 超级循环 然后MCU可以从FLASH / RAM(无论是......)获取指令并做一些愚蠢的事情,因为MCU不知道它正在执行什么。它只是执行你提供给他的代码。
通过使用超级循环,您可以保证MCU不会无法控制执行某些指令,也可能会进入故障安全区域。当然,即使你有超级循环也会发生这种情况,但这是其他主题。
int main() { //Init if you have something while (1) { //DO stuff always } return 0; //This should never happen! }