Vector de Reset, #build (reset=0x0000)

#1
Buenos días.
Escribo desde Uruguay, soy estudiante de ingenieria electronica y acutalmente estoy comenzando con la programacion de microcontroladores PIC en lenguaje C, estoy usando el CCS.
Necesito saber como se manipula el vector de reset. Lo que necesito es que al poner un nivel bajo en el pin MCLR de un 18F4550 el programa no se comience a ejecutar desde un punto del programa distinto a principal (main).
agradezco sus aportes.
Vulquiró.:apreton:
 
#3
A ver, a ver, espera Vulquiro escribo algo para que algun forista se anime a contestar.

. . . Necesito saber como se manipula el vector de reset . . .
Vulquiro, revise el datasheet del microcontrolador que esta usando, y le explicare el porque con un ejemplo del PIC16x8x:

  • Cuando el microcontrolador (uC) inicia, el contador de programa (CP) se carga con la direccion 00h.
  • Cuando el uC se resetea, el CP se carga con la direccion 04h.
Entonces, cuando escriba un programa siempre tiene que decirle que: en la direccion 00h salte al programa principal y en la direccion 04h salte al programa de la interrupcion.

:cool:
 
Última edición:
#4
:

  • Cuando el microcontrolador (uC) inicia, el contador de programa (CP) se carga con la direccion 00h.
  • Cuando el uC se resetea, el CP se carga con la direccion 04h.
Eso no es cierto. Tanto cuando se inicia como cuando se resetea arranca desde la direccion 00h, el arranque desde la direccion 04h ocurre cuando se activan algunas de las interrupciones.

En cuanto a tu problema puedes solucionarlo muy facilmente:
Cuando tu reseteas un pic, las variables no se borran, mantienen el mismo valor. Lo unico que tienes que hacer es configurar una variable con el nombre "arranque" y le das el valor "00001111". Cuando reseteas el pic lo primero que tienes que hacer es verificar el valor de esa variable, y si el valor es distinto a "00001111" arrancas desdes el INICIO, y si coincide arrancas desde otra posicion.
 

Temas similares

Arriba