Envio de Unsigned long(4bytes) via USART con C para PIC

#1
Hola a todos.. Quisiera saber como enviar un dato UNSIGNED LONG a traves de la USART, con el programa mplabC18..Bueno en si quisiera saber si lo q realice esta correcto, acá les coloco parte del codigo:

///////////////////////

unsigned long dato;

void main
{
OpenUSART( USART_TX_INT_OFF & USART_RX_INT_OFF & USART_ASYNCH_MODE & USART_EIGHT_BIT & USART_CONT_RX & USART_BRGH_HIGH, 25 ); // inicializa usart

WriteUSART( dato ); // envia valor
}
 
#2
Turkito, no , no está bien.

WriteUSART espera como parámetro un char, no una variable long.

La forma de enviarlo, es que uses un puntero char a la variable long, y lo hagas incrementar 3 veces para pasar por todos los bytes (que son 4) de la variable.

C18 adopta la forma, little endian, es decir que el byte menos significativo ocupa la posición más pequeña de memoria.

Saludos
 
#3
ok gracias maunix! lo hice de esa forma cxon punteros y funciona ar pelo, muy bien! aki esta el codigo por si acaso le sirve a alguien mas----

unsigned long int midato;
void main (){

penUSART( USART_TX_INT_OFF & USART_RX_INT_OFF & USART_ASYNCH_MODE & USART_EIGHT_BIT & USART_CONT_RX & USART_BRGH_HIGH, 25 );

p = (unsigned char *)& midato ;

for (i = 0; i< 4; i++)
{
WriteUSART( *p );
while ( BusyUSART() );
++p;
}

CloseUSART();
}
 
Arriba