Hola. Estoy recién yendo un poco mas a fondo con XC8 y un PIC16F628A .
Tengo el siguiente problema, ya tengo los pines de salida asignados a mitad del puerto A y la otra del B.
Lo que quiero es utilizar un solo byte para el estado de las salidas.
Pensé aplicar un método similar al que aplica las librerías de microchip en la definición de los registros del micro, porque quiero enviar por serie mas adelante el estado de las salidas.
Este método asigna los estados a las salidas que corresponde.
El resto del código está funcionando.
Tengo un método SecTwo() que funciona correctamente.
Usé SecOne() para aplicar estos cambios y no lo puedo hacer funcionar.
Mis dudas son:
¿No puedo usar el registro @0x021?
¿Hace falta asignar un registro, si no, cómo relaciono el QOUT con QOUTbits?
Tengo el siguiente problema, ya tengo los pines de salida asignados a mitad del puerto A y la otra del B.
Lo que quiero es utilizar un solo byte para el estado de las salidas.
Pensé aplicar un método similar al que aplica las librerías de microchip en la definición de los registros del micro, porque quiero enviar por serie mas adelante el estado de las salidas.
C:
unsigned char QOUT @0x021; // Registro QOUT "que e creado"
typedef union {
struct { // Bit a Bit del registro QOUT
unsigned Q1 :1;
unsigned Q2 :1;
unsigned Q3 :1;
unsigned Q4 :1;
unsigned Q5 :1;
unsigned Q6 :1;
unsigned Q7 :1;
unsigned Q8 :1;
};
} QOUTbits_t;
QOUTbits_t QOUTbits @0x021;
C:
void PrintQout(void) { // Metodo para aplicar a las salidas correspondientes
PORTAbits.RA0 = QOUTbits.Q1;
PORTAbits.RA1 = QOUTbits.Q2;
PORTAbits.RA6 = QOUTbits.Q3;
PORTAbits.RA7 = QOUTbits.Q4;
PORTBbits.RB4 = QOUTbits.Q5;
PORTBbits.RB5 = QOUTbits.Q6;
PORTBbits.RB6 = QOUTbits.Q7;
PORTBbits.RB7 = QOUTbits.Q8;
}
void SecOne(void) { // Metodo para Prueba
__delay_ms(100);
Qout = 1;
PrintQout();
__delay_ms(100);
Qout = 0;
PrintQout();
}
Tengo un método SecTwo() que funciona correctamente.
Usé SecOne() para aplicar estos cambios y no lo puedo hacer funcionar.
Mis dudas son:
¿No puedo usar el registro @0x021?
¿Hace falta asignar un registro, si no, cómo relaciono el QOUT con QOUTbits?
Última edición por un moderador: