Actualmente estoy trabajando en una placa MSP430 y estoy tratando de crear bibliotecas para poder usarlas fácilmente en mi proyecto. Estoy empezando con las funciones básicas de E / S digital.
Diga, por ejemplo, que necesito configurar P1.0 ON. En ese caso, normalmente lo que hago es:
P1SEL &= (~BIT0); // Set P1.0 SEL for GPIO
P1DIR |= BIT0; // Set P1.0 as Output
P1OUT |= BIT0; // Set P1.0 HIGH
Pero necesito escribir una función que solo tome el Número de puerto, Pin y Valor y establezca los registros anteriores. Algo como esto:
void setVal(int x, int y) {
PxSEL &= (~BITy);
PxDIR |= BITy;
PxOUT |= BITy;
}
Donde x es Puerto e Y es Pin. ¿Hay alguna manera en que pueda implementar tal función? O se ha hecho esto antes? En caso afirmativo, por favor comparte el enlace para el mismo. Estaba pensando en utilizar una tabla de búsqueda y seleccionar el registro a través de la indexación. Pero no estoy seguro de si ese es un buen enfoque. Cualquier ayuda sería apreciada.
Gracias