pues digamos que tenemos un ARRAY o STRING
char *cadena="pajaro";
la cadena mide la longitud mas el caracter nulo
yo diria que si haces una funcion de enviar un caracter digo CCS envia un caracter con putc();
lo que debes hacer es meterlo dentro de un while cuando encuentre nulo
while(cadena!='\0')
{
//funcion para enviar 1 byte
//podria ser putc(); o enviar directamente con el registro UART
i++;
}
Discúlpas TRILO-BYTE, creo que por cansancio mental (48 hrs, despierto), no analice bien tu código. Lo probaré porque parece seguir mí lógica, o más bien la idea. Gracias a los demás igualmente, probare.
/***Actualización***/
Probé lo siguiente, siguiendo claro la recomendación de TRILO-BYTE,
Código:
char *mensaje="HOLA", i=0;
/*********************************************/
[B]while[/B](1) {
[B]if[/B](TRMT==1 && segundo>=1) { //Si el registro de envió esta vació, entonces cada segundo
[COLOR="Blue"]i=0;[/COLOR]
[B]while[/B](mensaje[i]!='\x00') { //Envía la palabra HOLA,
TXREG=mensaje[i];
[COLOR="blue"]i++;[/COLOR]
} [B]while[/B](!TRMT); //Espera que se vacié el registro de envió y,
second=0; //resetea el delay mediante TMR0.
}
}
Pero solo envía la primera y ultima letra ("HA") cada segundo. Tendré error de sintaxis? Solo coloque el código de TRILO-BYTE por la librería UART_Write();
Seguiré probando pero si alguien tiene un consejo, es bienvenido
/***Actualización***/
Observe que si iniciaba la variable i=1; el mensaje ahora es "OA", osea, el contador ascendente se salta dos estados.
Última edición: