Hola amigos del foro, no se si el titulo este bien escrito, esto me lo enseño fidodido18, lo que vamos a hacer es pasar un metodo como puntero, entonces si es un programa donde tenemos varios uart, para no preguntar por cual uart vamos a enviar la informacion, con el mismo codigo pasamos el metodo por el que va a salir y listo, vamos a un ejemplo:
void (*uart_actual)(const char *string);
void U1S(const char *string){
while(*string != '\0')
{
while(!UARTTransmitterIsReady(UART1));
UARTSendDataByte(UART1, *string);
string++;
while(!UARTTransmissionHasCompleted(UART1));
}
}
void U2S(const char *string){
while(*string != '\0')
{
while(!UARTTransmitterIsReady(UART2));
UARTSendDataByte(UART2, *string);
string++;
while(!UARTTransmissionHasCompleted(UART2));
}
}
int main(void){
configuraciones_del_pic();
uart_actual=U1S;
uart_actual("\r\nOK\r\n");//sale por el Uart 1
uart_actual=U2S;
uart_actual("\r\nOK\r\n");//sale por el Uart 2
while(1);
}
Con este código podemos probar, así no tendríamos que aumentar las lineas de código, por ejemplo cuando usamos varios uart.
La verdad no conocía este método, pero me ha servido mucho, muchas gracias a fidodido18 por la información.