作者:妖精蝴蝶74 | 来源:互联网 | 2023-02-05 19:30
我的面包板上有一个简单的PIC16F18877电路设置,我已成功获得一个LED在无限while
循环内闪烁.我试图将相同的代码放在一个for
只应执行5次的循环中,但LED会一直闪烁.
我的代码(带XC8编译器的MPLAB):
#include
#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;
}
tofro..
5
你期望CPU从main
哪里跳回来?或者更确切地说,当你不告诉它该做什么时,你期望它做什么?在台式计算机上,程序通常会返回到操作系统 - 在嵌入式系统上,没有.
最有可能的是,返回从main
返回到启动代码,并最终("偶然"或故意)到重置向量,从头开始启动程序.
如果你希望MCU实际上"停止","什么也不做"你需要强制它进入无限循环而不是return
.然而,这不是MCU上的常见方法.
1> tofro..:
你期望CPU从main
哪里跳回来?或者更确切地说,当你不告诉它该做什么时,你期望它做什么?在台式计算机上,程序通常会返回到操作系统 - 在嵌入式系统上,没有.
最有可能的是,返回从main
返回到启动代码,并最终("偶然"或故意)到重置向量,从头开始启动程序.
如果你希望MCU实际上"停止","什么也不做"你需要强制它进入无限循环而不是return
.然而,这不是MCU上的常见方法.