Perdida de datos entre PIC y Labview

Hola amigos.
Estoy intentando enviar valores por puerto RS232 hacia labview pero pierdo algunos de los valores enviados, he intentado ajustar el wait(ms) del programa labview pero de vez en cuando se van perdiendo numeros, si me pudieseis guiar estaria muy agradecidos.

Os posteo parte del programa del pic y labview.


********************************PIC16f690*************************

int16 value, i, x, y, z;

void main()
{
while(true)
{

x=0;
y=10;
z=20;

for(i=0;i<1024;i++)
{
value = x;
printf("%Lu\r",value);
delay_us(20);
x++;

value = y;
printf("%Lu\r",value);
delay_us(20);
y++;

value = z;
printf("%Lu\r",value);
delay_us(20);
z++;

}

}

}
 

Adjuntos

  • labview.jpg
    labview.jpg
    82.3 KB · Visitas: 43
A que frecuencia trabaja el PIC? posiblemente es problema de que el oscilador que usas no esta bien ajustado....
 
hola Chico3001.
Esta es mi configuracion del programa:

#include <16F690.h>

#FUSES NOWDT //No Watch Dog Timer
#FUSES HS //High speed Osc (> 4mhz for PCM/PCH) (>10mhz for PCD)
#FUSES NOPROTECT //Code not protected from reading
#FUSES BROWNOUT //Reset when brownout detected
#FUSES MCLR //Master Clear pin enabled
#FUSES NOCPD //No EE protection
#FUSES NOPUT //No Power Up Timer
#FUSES IESO //Internal External Switch Over mode enabled
#FUSES FCMEN //Fail-safe clock monitor enabled

#use delay(clock=20000000)
#use rs232(baud=9600,parity=N,xmit=PIN_B7,rcv=PIN_B5,bits=8)
 
Me refiero al cristal con el que estas haciendo oscilar al PIC... si mal no recuerdo habia un capitulo entero en el manual de usuario que trata acerca de el error generado por distintos tipos de cristales y distintas frecuencias de transmision, algunas combinaciones te daban hasta 5% de error de desfase y eso ya es algo notable...
 
Atrás
Arriba