我的面包板上有一个简单的 PIC16F18877 电路设置,我已经成功地让 LED 在无限 while
循环中闪烁。我试图将相同的代码放入一个只应执行 5 次的 for
循环中,但 LED 一直闪烁。
我的代码(带有 XC8 编译器的 MPLAB):
#include <xc.h>
#define _XTAL_FREQ 8000000
int main()
{
TRISD1 = 0;
for (int i = 0; i < 5; i++)
{
RD1 = 1;
__delay_ms(500);
RD1 = 0;
__delay_ms(500);
}
return 0;
}
最佳答案
您希望 CPU 从 main
返回时跳转到哪里?或者更确切地说,当你不告诉它做什么时,你期望它做什么?在台式计算机上,程序通常会返回到操作系统 - 在嵌入式系统上,没有。
最有可能的是,main
的返回返回到启动代码,并最终(“无意地”或有意地)返回到重置 vector ,从头开始您的程序。
如果您希望 MCU 实际上“停止”,“什么都不做”,您需要强制它进入无限循环而不是 return
。然而,这不是 MCU 上的常见方法。
关于c - 微 Controller 编程 - 程序不退出循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43574326/