Hola a todos
Bueno gente tengo un problemita con los datos recibidos... les explico...
Envio UN caracter cualquiera desde la PC al pic y este es capaz (con mi programa) de tomarlo mostrarlo por LCD y reenviarlo a la PC para mostrar en el monitor del puerto serie...
Si envio DOS caracteres el pic me muestra solo por la LCD el ultimo caracter enviado y en el PC me muestra caracter por caracter.
por ejemplo si envio el numero 1: (31 en hexa)
la LCD muestra: 1
la PC muestra: Dato: 1
pero si envio los numeros 09 (30 39 en hexa)
la LCD muestra: 9
la pc muestra: Dato: 0Dato: 9
entonces lo que no quiero es eso, quiero poder unir todo lo que envio desde la PC en una sola cadena de caracteres y poder contar cuantos caracteres fueron recibidos y que me muestre:
en la LCD: 09
en la PC: Dato: 09
el programa es el siguiente....
#include <16F877a.h>
#fuses XT,NOWDT,NOPROTECT,NOLVP,PUT,BROWNOUT
#use delay(clock=4000000)
#use rs232(baud=9600, xmit=pin_C6, rcv=pin_C7)
#define use_portb_lcd TRUE //definir portb lcd
#include <lcd.c> //libreria manejo lcd
void main(void)
{
char dePC=' ';
lcd_init();
lcd_gotoxy(1,1);
printf(lcd_putc,"J.Tafur");
while(true)
{
dePC=getc(); // PIC<-PC
lcd_gotoxy(1,2);
printf(lcd_putc,"%c",dePC); // PIC->LCD
printf("Dato: %c",dePC); // PIC->PC
}
}