Hola:
En el MPLAB hay una directiva IF ELSE muy chula para ayudar con el ensamblador. Tengo un código completo que depende de la configuración me funciona para un PIC 16F84A y otro PIC para el 16F88.
Puedo crear dos .asm para cada pic pero prefiero crear uno solo. Se elige la configuración de cada PIC gracias al IF ELSE, lo he visto hacer con un 12F508 y 12F509, lo que no consigo encontrar ese código para ver como era. Sólo desde el MPLAB eliges el tipo de PIC, con el IF ELSE, él solito te genera el .hex adecuado para el PIC específico.
Si alguien sabe como se hace, una ayudita no viene mal.
Saludo.
EDITO:
Ya me salió el truco que es este:
Si quieren intentarlo con más de dos PIC lo intentaremos a ver si nos sale. Esto si que es una comodidad, sólo hay que seleccionar el PIC a usar en el MPLAB y en el mismo código fuente puede seleccionar muchos PIC con solo cambiar un número.
Podemos hacer con varios PIC a ver si cuela.
16F84A
16F627A
16F628A
16F48
16F87
16F88
¿Alguno más?
En el MPLAB hay una directiva IF ELSE muy chula para ayudar con el ensamblador. Tengo un código completo que depende de la configuración me funciona para un PIC 16F84A y otro PIC para el 16F88.
Puedo crear dos .asm para cada pic pero prefiero crear uno solo. Se elige la configuración de cada PIC gracias al IF ELSE, lo he visto hacer con un 12F508 y 12F509, lo que no consigo encontrar ese código para ver como era. Sólo desde el MPLAB eliges el tipo de PIC, con el IF ELSE, él solito te genera el .hex adecuado para el PIC específico.
Código:
IF (16F84A == 16F88)
LIST P=16F84A
INCLUDE <P16F84A.INC>
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
CBLOCK 0x0C
TeclaPulsada ; Va a guardar el contenido de la tecla pulsada.
MensajeApuntado ; Va a guarda la dirección del mensaje apuntado.
ENDC
ELSE
LIST P=16F88
INCLUDE <P16F88.INC>
__CONFIG _CONFIG1, _CP_OFF & _DEBUG_OFF & _WRT_PROTECT_OFF & _CPD_OFF & _LVP_OFF & _BODEN_OFF & _MCLR_ON & _PWRTE_ON & _WDT_OFF & _XT_OSC
__CONFIG _CONFIG2, _IESO_OFF & _FCMEN_OFF
CBLOCK 0x20
TeclaPulsada ; Va a guardar el contenido de la tecla pulsada.
MensajeApuntado ; Va a guarda la dirección del mensaje apuntado.
ENDC
ENDIF
Saludo.
EDITO:
Ya me salió el truco que es este:
Código:
PROCESADOR EQU .1 ; 0=PIC16F88, 1=PIC16F84A. Elige un PIC.
IF PROCESADOR
LIST P=16F84A
INCLUDE <P16F84A.INC>
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
CBLOCK 0x0C
TeclaPulsada ; Va a guardar el contenido de la tecla pulsada.
MensajeApuntado ; Va a guarda la dirección del mensaje apuntado.
ENDC
ELSE
LIST P=16F88
INCLUDE <P16F88.INC>
__CONFIG _CONFIG1, _CP_OFF & _DEBUG_OFF & _WRT_PROTECT_OFF & _CPD_OFF & _LVP_OFF & _BODEN_OFF & _MCLR_ON & _PWRTE_ON & _WDT_OFF & _XT_OSC
__CONFIG _CONFIG2, _IESO_OFF & _FCMEN_OFF
CBLOCK 0x20
TeclaPulsada ; Va a guardar el contenido de la tecla pulsada.
MensajeApuntado ; Va a guarda la dirección del mensaje apuntado.
ENDC
ENDIF
Código:
PROCESADOR EQU .1 ; 0=PIC16F88, 1=PIC16F84A. Elige un PIC.
Podemos hacer con varios PIC a ver si cuela.
16F84A
16F627A
16F628A
16F48
16F87
16F88
¿Alguno más?
Última edición: