TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: Manel28 en 02 de Junio de 2010, 11:52:21

Título: Tiempo de ejecución fputc() para cumplir tiempos entre palabras
Publicado por: Manel28 en 02 de Junio de 2010, 11:52:21
Hola buenas,
estoy diseñando un programa en CCS con el 18f8722 y simulando con proteus isis. El problema que tengo es acerca de los tiempos de ejecución de fputc ya que cada byte que saca el fputc en el siguiente bucle tiene un retarddo considerable con respecto al anterior byte y en mi caso el tiempo entre estos bytes que se envian debe ser inferior a 700microseg. El desarrollo resumido es este:

for(i=0;i<=lenbuff-1;i++)                  
 fputc( buff,dirCamara );

despues de sacar por un pin de salida de una UART el primer byte del bucle tarda aproximadamente 1 ms hasta sacar el segundo. He intentando aumentar la frecuencia del reloj de cristal hasta 20MHz para que se cumpla que entre bytes hay max 700 microsegundos pero los datos tiempos de ejecución que me da proteus no cambian mucho.. pensaba que la idea de aumentar el reloj funcionaría. Alguna sugerencia?

Saludos
Título: Re: Tiempo de ejecución fputc() para cumplir tiempos entre palabras
Publicado por: Suky en 02 de Junio de 2010, 12:08:19
Eso depende de la velocidad de transmisión que estas usando, a 9600 Baud no lo vas a lograr nunca  :mrgreen: Pues se coloca el dato a enviar en el registro correspondiente en el módulo UART y se espera a que sea enviado, o sea el bit de stop. Aumentando la velocidad ya se soluciona el problema.


Saludos!