Hola, estoy usando el compilador PICC de Hi Tech, este es el codigo, la parte q contiene los comentarios es en la q esta el problema.
Gracias por la ayuda.
#include <pic.h>
#include <stdio.h>
#include "delay.h"
#include "adc.h"
#define BYTE unsigned char
#define INT_16 short
void rs232_init() {
RC6 = 0; // RC6 = TX Salida
RC7 = 1; // RC7= RX Entrada
SPBRG = 0x81;
TXSTA = 0b00100100; // Configuración RS232 transmisión:
// modo asíncrono, 8 bits, alta velocidad (K=16) a 19200
RCSTA = 0b10010000; // Configuración RS232 recepción: 8 bits, recepción continua
}
void rs232_send(unsigned char data) {
TXREG = data;
while (!TRMT);
}
void main()
{
BYTE canal,bajo,alto;
INT_16 valor;
float res;
rs232_init(); /*Inicializacion de la USART */
TRISB=0x00; /*Todos los pines del puerto B (los
son de salida para seleccion de los MUX*/
TRISA0=1;
TRISA2=1;
TRISA3=1;
ADCON1=0b11001100;
PORTB=0x00;
canal=0x00;
adc_read(canal); //Funcion que realiza la conversion A/D
DelayUs(2);
bajo=ADRESL;
alto=ADRESH;
valor=ADRESH;
valor=(valor<<
+ADRESL;
res=valor*0.004883; //Lo multiplico por 0.004883 pq estoy usando un Vref+ de 5v (5/1024=0.004483)
//y asi conozco el valor de entrada analogico.
rs232_send(res); //El problema es q al enviar la USART los datos byte a byte no se como
//enviarle un dato q ocupe mas de un byte para q la terminal lo reconozca
//como un float o un int.
//rs232_send(bajo);
//rs232_send(alto);
//rs232_send(valor);
//rs232_send("");
}