Haciéndola corta para no cansarlos:
Si mal no entiendo, hay registros para configurar las entradas digitales del puerto y a la vez asignarles el pin al cual van a estar mapeadas, es así??
Ademas, hay registros para configurar las salidas digitales del puerto y del mismo modo anterior asignarles a que pin quedaran mapeados??
Si es asi, luego pondré aquí un ejercicio de como lo hare.
Y encontré una funcionalidad que no conocía del CCS.
En la pestaña View del menú, si damos click al ítem Special Registers, se abre esta pantalla:
Si allí seleccionamos Make Include File, se abre otra ventana que permite armar un archivo de cabecera con todos los registros del PIC, cada uno como Word y sus bits respectivos, o sino como estructuras de bits.
Aquí un ejemplo corto de cada una de esas opciones:
#word MCU_WREG0 = 0x000
#word MCU_WREG1 = 0x002
#word MCU_WREG2 = 0x004
#word MCU_WREG3 = 0x006
#word MCU_WREG4 = 0x008
#word MCU_WREG5 = 0x00A
#word MCU_WREG6 = 0x00C
#word MCU_WREG7 = 0x00E
#word MCU_WREG8 = 0x010
#word MCU_WREG9 = 0x012
#word MCU_WREG10 = 0x014
#word MCU_WREG11 = 0x016
#word MCU_WREG12 = 0x018
#word MCU_WREG13 = 0x01A
#word MCU_WREG14 = 0x01C
#word MCU_WREG15 = 0x01E
#word MCU_SPLIM = 0x020
#word MCU_PC = 0x02E
#word MCU_TBLPAG = 0x032
#word MCU_PSVPAG = 0x034
#word MCU_RCOUNT = 0x036
#word MCU_SR = 0x042
#bit MCU_C = MCU_SR.0
#bit MCU_Z = MCU_SR.1
#bit MCU_OV = MCU_SR.2
#bit MCU_N = MCU_SR.3
#bit MCU_RA = MCU_SR.4
#bit MCU_IPL0 = MCU_SR.5
#bit MCU_IPL1 = MCU_SR.6
#bit MCU_IPL2 = MCU_SR.7
#bit MCU_DC = MCU_SR.8
#word MCU_SR = 0x042
El que tiene todo en estructuras:
#word PIC24_PC = 0x02E
#word PIC24_TBLPAG = 0x032
#word PIC24_PSVPAG = 0x034
#word PIC24_RCOUNT = 0x036
union {
union {
struct {
unsigned int C:1;
unsigned int Z:1;
unsigned int OV:1;
unsigned int N:1;
unsigned int RA:1;
unsigned int IPL0:3;
unsigned int DC:1;
};
struct {
unsigned int :1;
unsigned int :1;
unsigned int :1;
unsigned int :1;
unsigned int :1;
unsigned int IPL:3;
};
struct {
unsigned int :7;
unsigned int IPL2:1;
};
};
} PIC24_SR;
#word PIC24_SR = 0x042
#word SR = 0x042