Tengo un PIC16LF1709 MCU de microchip de 20 pines y 8 bits . Lo estoy programando utilizando un PICkit 3 . Soy capaz de grabar con éxito un programa en el chip y ejecutarlo, pero parece que siempre se reinicia parcialmente durante la ejecución.
Mientras programo el PIC, estoy dejando que el programador suministre la alimentación, pero también puedo desconectar el programador y ejecutar el chip en su propio suministro de 5V. Según lo recomendado, he ejecutado una resistencia de extracción de 50kOhm desde MCLR a Vdd para evitar que se reinicie el dispositivo.
Tengo cinco LED conectados a RC0-RC4, y he escrito el siguiente programa de prueba para demostrar los problemas que estoy experimentando:
#include <xc.h> /* XC8 General Include File */
#include <pic16lf1709.h> /* Definitions of I/O pins */
void main(void) {
TRISC = 0x0; // port C (all are LEDs or NC) is output
PORTC = 0x0; // turn on all LEDs
for(int i=0; i<500; i++) _delay(250); // delay for about a second
PORTC = 0xFF; // turn off all LEDs
while(1) {
// do nothing, forever
// lights should remain OFF.
}
}
Espero que las luces se enciendan brevemente, luego se apaguen y permanezcan apagadas hasta que apague y encienda el dispositivo. En cambio, las luces están parpadeando. Esto me hace pensar que el PIC se reinicia cada 1 a 2 segundos.
He intentado incluir la siguiente línea de configuración (aparte de esto, no especifiqué ninguna configuración) en un intento de deshabilitar algunas de las funciones que podrían restablecer automáticamente el dispositivo. El comportamiento no ha cambiado.
#pragma config MCLRE = OFF, STVREN = OFF, LPBOR = OFF
También he intentado dejar que la ejecución se ejecute con la alimentación de los 3.25v suministrados por el PICkit (a diferencia de los 5v suministrados por mi fuente de alimentación principal), pero eso tampoco hizo ninguna diferencia aparente.
¿Qué podría estar causando este comportamiento?