我正试图编程PIC16F887和有这个有趣的问题。我希望从发光二极管闪烁一次,永远停止,但它开始回来,从来没有停止,虽然看门狗是残疾的。这是密码。提前谢谢。
我用MPLAB v8.84编写了这个,并使用PICkit2和Hi-Tech C编译器编程。

#include <htc.h>
#include <pic.h>
#define _XTAL_FREQ 800000
//__CONFIG(0x3FF5);

//functions
void INITgeneral(void);
void ledshow (void);

void main(void) {
INITgeneral();
ledshow();
return;
}

void INITgeneral(void)
{
TRISA = 0;
TRISB = 0;
TRISC = 0;
TRISD = 0;
TRISE = 0;
PORTA = 0;
PORTB = 0;
PORTC = 0;
PORTD = 0;
PORTE = 0;

}

void ledshow(void)
{

__delay_ms(400);
RD0 = 1;
__delay_ms(400);
RD0 = 0;


}

最佳答案

内置的模拟器对于发现类似这样的问题非常有帮助,非常值得学习。
在“视图”选项卡下,选择“反汇编列表”。注意,从调用返回到ledshow()后的下一条指令是用零加载程序计数器的指令GOTO 0,即重置向量。这就是为什么你不停地执行这个程序。
要停止此行为,请将return中的main()替换为无休止循环while(1){};

关于c - PIC无限循环,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35024488/

10-11 23:12
查看更多