c - 微 Controller 编程 - 程序不退出循环

标签 c for-loop microcontroller pic mplab

我的面包板上有一个简单的 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/

相关文章:

c++ - 在stm32上解释来自触摸屏 Controller (ADS7843)的原始数据

c - 在 MSP430 代码中使用全局变量

c - STM32 PWM DMA 只有在我每次传输时都重新初始化时才能正常工作,否则会丢弃前几个脉冲

c - C语言中如何改变数组中两个数字的位置?

python - 使用循环将值保存在数组中

java - 循环时递减递增

c - "for"的多个语句循环无 block

从现有枚举常量创建一个新的枚举常量

c - 宽度不兼容的变量

c - 由于需要结构/union ,microC 构建失败