我是 PIC 微控制器编程的新手,我在编写一段代码时遇到了一些困难。在main()
函数中,它设置了一些寄存器,然后进入一个无限的while循环。在这个 while 循环中,调用了第二个函数,这会产生延迟(没有调用任何其他函数,包括main()
then 返回。但是,似乎当第二个函数结束时,程序会回到顶部main()
,而不是继续while 循环。
编辑1:我做了更多的测试,但没有这个功能我仍然遇到问题,所以几乎可以肯定微控制器每隔一秒左右就会重置一次,原因不明。应该有一个寄存器告诉你重置的原因,所以我会看看。
编辑 2:这是一个非常基本的代码版本,其中 RC0 LED 每 2 秒短暂闪烁一次(它应该保持关闭)。
void main()
{
TRISC = 0x00;
PORTCbits.RC0 = 1;
OSCCON = 0b00000010;
TRISA = 0x00;
PORTA = 0x00;
while(1)
{
PORTCbits.RC0=0;
}
}
编辑 3:原来是看门狗定时器导致了复位,现在通过在循环中放置一个 CLRWDT() 来修复。