El tamaño de la trama es siempre de 22 , ya que tengo configurado el xbee para que me mande una lectura del puerto D0 cada 1 segundo, la cual es recibida por el otro XBEE coordinador. Conectando el XBEE coordinador al pc por medio del software XCTU recibo bien la lectura del otro XBEE, el problema me aparece cuando lo conecto al pic y quiero visualizar la lectura en un LCD, que no me muestra nada.
#include "C:\CCS\pic876\pic876.h"
#define LCD_DB4 PIN_B4
#define LCD_DB5 PIN_B5
#define LCD_DB6 PIN_B6
#define LCD_DB7 PIN_B7
#define LCD_RS PIN_B1
#define LCD_E PIN_B0
#define LCD_RW PIN_C1 //Posición del PIN RW
#include "C:\CCS\pic876\lcd1.c"
float Tension;
int msb,lsb;
int i;
int8 buffer[22];
int read;
int16 lectura;
#INT_RDA
void RDA_isr(void)
{
read = getc();
if (read == 0x7E){
for(i=2;i<22;i++)
{
buffer[i] = getc();
}
msb=buffer[20];
lsb=buffer[21];
}
}
void lcd_saludo_inicial(void);
void main()
{
//----Inicializo el LCD y muestro el saludo inicial------
set_tris_b(0b00000000);
lcd_init();
lcd_saludo_inicial();
lcd_gotoxy(1,1);
lcd_putc("Comunicacion RS232");
enable_interrupts(INT_RDA);
enable_interrupts(GLOBAL);
lectura = buffer[20] < 8 & buffer[21];
Tension = (float)lectura * 1.2 /1024;
while(TRUE)
{
lcd_gotoxy(1,2);
printf(lcd_putc, " %X, %X", msb, lsb);
}
}
//-------------------------------------------------------
//FUNCIONES
//-------------------------------------------------------
//Imprime saludo inicial.
void lcd_saludo_inicial(void)
{
lcd_gotoxy(2,1); //Posición 2, fila 1
Lcd_putc("***DPP 2014***"); // Escribo en la primera fila
delay_ms(1000); // Reatardo de 1 segundo
lcd_gotoxy(4,2); //Posición 4, fila 2
Lcd_putc("LCD en CCS"); // escribo en la segunda fila
delay_ms(5000); // Retardo de 5 segundos
Lcd_putc("\f"); // Limpio pantalla
}
No sé porque no me muestra nada. Me muestra los mensajes de presentación pero no la lectura analógica en hexadecimal. ¿qué puedo estar haciendo mal?