Search code examples
cinfinite-looppicmplabxc8

Program exits endless loop (PIC microcontroller)?


I wrote a program for the PIC 16f690 microcontroller after noticing my programs seemed to be exiting an endless loop.

There are LEDs on pins 3,4,5 of PORTC.

#include <xc.h>
#define _XTAL_FREQ 4000000

void main(void) {

    TRISC = 0x00;
    PORTC = 0b00111000;

    while (1)
    {
        __delay_ms(1000);
        PORTC = 0x00;
    }
}

As far as I understand, the LEDS should be on for ~1sec, and then be off forever. Instead they keep blinking every second.

I wrote this in MPLABX and programmed using PICkit3 and C8 compiler.


Solution

  • You are likely being bitten by the watchdog. Disable the watchdog for your tests or clear it before it reset the MCU.