MPLABX: problema con bucle infinito

#1
buenas, tengo un problema, ejecuto un programa muy sencillo (prendido y apagado), pero me di cuenta que el bucle se repite y repite(sin tener la sentencia while), porque? si el main corre el programa de arriba a abajo y llega al return que le dice que el programa esta bien, que falla? estoy usando el pic 16f84a

#include <stdio.h>
#include <stdlib.h>
#include <xc.h>
#pragma confing FOSC=XT, WDTE==OFF, PWRTE=OFF, CP=OFF
#define _XTAL_FREQ 4000000

int main(int argc, char** argv) {

TRISB = 0x00;
PORTB = 0x00;

PORTBbits.RB0 = 1;
__delay_ms(400);
PORTBbits.RB0 = 0;
__delay_ms(400);

return (EXIT_SUCCESS);

}
 
#2
que falla? estoy usando el pic 16f84a
1ro está mal el main, éste no debe de recibir ni entregar parámetros... es decir:

void main (void)
{
//......
}

No te guies necesariamente por las plantillas de tiene el MPLABX.
Eso solo los he visto para PIC de mayor nivel como los dsPIC y similares ya que inicializa otras cosas que el usuario no ve, pero para el simple F84 no tiene sentido.

2do No estoy seguro pero al final, la llave que cierra main contiene una instrucción ya sea de sleep o de goto. Puedes revisar el archivo lst o asm que genera al compilar y al final justo en la llave debe haber unas líneas de instrucción que determine el comportamiento (ese bucle).
 
Última edición:
#3
Al igual que dice ByAxel, yo quitaria ese int main(int argc, char** argv) y pondría void main() o void main(void) es lo mismo; y tambien quitaría el return, total el main no retorna nada
 
Arriba