Programación General > Visual C++

 Timers

<< < (2/5) > >>

allisap:
se tarda 50ms en volver a pedir un dato al usb , mi codigo no creo que se tarde 50 ms , de hecho lo unico que hace es estar pidiendole datos al usb y los ponen en pantalla ,

 lo que necesito es que en cada llamada al timer pida datos al dispositvo usb ( el pic) lo mas rapido posible y el pic no creo que se tarde tanto en enviar los datos

Eternal Idol:

--- Cita de: "allisap" --- se tarda 50ms en volver a pedir un dato al usb , mi codigo no creo que se tarde 50 ms , de hecho lo unico que hace es estar pidiendole datos al usb y los ponen en pantalla ,

 lo que necesito es que en cada llamada al timer pida datos al dispositvo usb ( el pic) lo mas rapido posible y el pic no creo que se tarde tanto en enviar los datos
--- Fin de la cita ---
¿Y necesitas el timer de verdad? ¿No es mas facil hacer un bucle y de necesitar esperar usar Sleep? Podes crear un hilo para que se encargue de eso ...

allisap:
en realidad la primera aplicacion que hice esta en un bucle, y lo unico que hace es pide

datos al usb
imprime en pantalla

pero aun asi se tarda esos 50ms

luego hice una aplicacion que utiliza los timers normales y asi se tarda menos pero aun no es suficiente....


en cuanto a los hilos, no se muy bien como hacerlo asi, por eso buscaba los timers de multimedia que dicen tienen una mejor resolucion (creo que de 1ms o algo asi)

Eternal Idol:

--- Cita de: "allisap" ---en realidad la primera aplicacion que hice esta en un bucle, y lo unico que hace es pide

datos al usb
imprime en pantalla

pero aun asi se tarda esos 50ms

luego hice una aplicacion que utiliza los timers normales y asi se tarda menos pero aun no es suficiente....


en cuanto a los hilos, no se muy bien como hacerlo asi, por eso buscaba los timers de multimedia que dicen tienen una mejor resolucion (creo que de 1ms o algo asi)
--- Fin de la cita ---
Por lo que decis es tu codigo el que tarda, especialmente si lo hacias en un bucle, ahi no hay nada mas. Es cierto que tienen mejor resolucion pero si el problema es el tiempo que tardas en procesar esos datos tal vez tendrias que hacer un hilo con el bucle original que tenias pero dedicado solo a recibir y poner en una cola esos datos y que otros hilo (o uno solo) se dedique a procesar estos datos, asi le darias tiempo a recibir ...

Para crear un hilo usas CreateThread:
http://search.msdn.microsoft.com/search/Re...reatethread.asp

Y si queres ver lo de los timers multimedia (me parece innecesario):
http://search.msdn.microsoft.com/search/Re...edia_timers.asp

allisap:
bueno este es parte de codigo

....


do{
   system("cls");
   lectura=ResultadoPIC();
   printf("lectura del adc: %4d \r\n",lectura);
   }
while( !_kbhit() );


....

como ven solo limpia pantalla y pide datos al pic, (el pic solo se tarda cerca de 1ms , ya lo medi) usando la funcion ResultadoPIC() que esta aqui ;)



int ResultadoPIC()
{
    int result = 0;
    BYTE receive_buf[2];
    DWORD RecvLength = 2;

    ReceivePacket(receive_buf, &RecvLength);
    result = receive_buf[0]+receive_buf[1]*256;

   return result;
}


no creo que esto se tarde esos 50ms,  :unsure:

alguna idea de como acelerar el proceso?

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

[*] Página Anterior

Ir a la versión completa