Gracias Diego, es lo que estaba intentando hacer ahora. Crear una matriz de 6 datos por ejemplo y ir almacenando caracteres uno a uno, el problema que tengo ahora es juntarlos todos en un string para poder transformarlo luego a float que es como necesito tener el dato para posteriormente tratarlo.... lo que he ido haciendo es esto pero no se si va a funcionar bien o no ya que en proteus sigue necesitando que prete el enter para funcionar....
Os dejo el codigo:
#include <16F876A.h>
#Fuses XT,NOWDT,NOPROTECT,NOLVP,PUT
#Use delay (clock=4000000)
#Use rs232 (BAUD=9600, XMIT=PIN_C6, RCV=PIN_C7, BITS=8, PARITY=E, STOP=1)
#include <lcd2.c>
#include <stdio.h>
#include <stdlib.h>
#Byte Port_a = 0b00000101
#Byte Port_b = 0b00000110
#Byte Port_c = 0b00000111
char a;
char b[6];
int c;
float d;
int e;
char f;
main()
{
a='?';
lcd_init();
lcd_putc("\f");
printf(lcd_putc, "Iniciando...");
delay_ms(2000);
lcd_putc("\f");
while(1)
{
e=0;
putc(a);
delay_ms(250);
for (e=0,e=5,e++)
{
b[e]=getc();
}
strcat(f, b[0]);
strcat(f, b[1]);
strcat(f, b[2]);
strcat(f, b[3]);
strcat(f, b[4]);
strcat(f, b[5]);
delay_ms(150);
c=atoi(f);
d=(float)c;
lcd_putc("\f");
printf(lcd_putc, "%2.3f",d);
delay_ms(2000);
lcd_putc("\f");
delay_ms(1000);
}
}
Luego otro problema que tengo es el pasar de string a float ya que como se hacerlo es pasando primero por int, el problema que me da esto que pierdo todos los decimales :s
Un saludo