Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: matiasg en 17 de Noviembre de 2011, 14:42:46
Título: Estructura/Union de Pines en C18
Publicado por: matiasg en 17 de Noviembre de 2011, 14:42:46
Hola Compañeros, necesito una ayudita, necesito crear una estructura o unión para los pines del micro.
La cuestión es que tengo un motor Paso a Paso conectado en 4 pines del micro, pero estos pines no están en el mismo puerto del micro y no los puedo manejar atreves del PORT, entonces quisiera crear una estructura para poder manejarlos desde un solo registro.
Esta seria la idea basicamente.
struct {
LATBbits.LATB2
LATBbits.LATB3
LATBbits.LATB4
LATCbits.LATC0
} Bus_PaP;
Esto obviamente no funciona :(, me da error de sintaxis, pero no le encuentro la vuelta para hacerlo.
El micro es un PIC18F87K22 y el lenguaje es C18
Si alguien se le ocurre algo, se lo agradezco mucho!!!
Saludos :)
Título: Re: Estructura/Union de Pines en C18
Publicado por: MerLiNz en 17 de Noviembre de 2011, 15:21:06
me temo que lo que dices no se puede hacer, las direcciones de memoria van de 8 en 8 bits, y cada puerto es 1bit, no se puede direccionar memoria por bit.
Lo unico que se me ocurre esque hagas una funcion y que esa funcion cambie el bit que le pidas, por ejemplo
void set_b(char puerto, char status) { switch(puerto) { case 0: latbbits.latb2=status; break; case 1: latbbits.latb3=status; break ........
} }
todo bien puesto claro.
si lo que quieres hacer es cambiar x pines del tiron, tipo PORTB=0b111000; lo que puedes hacer es: