Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:
Ante los problemas derivados de mi post anterior "como filtrar tensiones", os comunico que he encontrado algo que si bien no resuelve el problema lo minimiza bastante. Como creo que puede ser de interes para algunos (seguro que muchos ya lo sabeis), aqui os lo describo.
Como bien deciais mis problemas provenian de la forma en que Windows administra y reparte el tiempo. Si bien no se puede dar prioridad absoluta a un proceso si que se puede aumentar su prioridad hasta un maximo.
Una explicacion muy detallada de como administra el tiempo Windows la encontrareis aqui:
http://www.ilustrados.com/publicaciones ... sNxUQB.php
Como vereis la prioridad es una combinacion de 2 parametros, uno rige la clase del proceso (de 0 a 15) y el otro especifica su prioridad como subproceso (0 a 255)
Un proceso "normal" tiene 0 y 20H. Se pueden cambiar hasta 15 y 100H que es la maxima prioridad posible.
Para ello existen dos funciones
SetThreadPriority
SetPriorityClass
Una explacion y el codigo en visualBasic esta en:
http://www.lawebdelprogramador.com/preg ... sual+Basic
Lo he probado y funciona.
Un aviso IMPORTANTE. Si usais esto estais dando a vuestro programa prioridades iguales a las del propio sistema. Incluso por encima del teclado y raton. Asi que un "abuso" en estas llamadas puede evidentemente ralentizar el sistema e incluso "dormirlo"
Saludos Jose Luis
PD para haceros una idea, en el caso de mi brazo con parkinson, ha dasado de 1 espasmo pequeño por segundo y uno grande cada 5 segundos a uno pequeño cada 5 y uno grande cada 10 asi que si bien no esta solucionado si es suficiente para seguir experimentando mientras me paso a los Pics.
Tomare nota del sistema, puede que me sea útil. Lo cierto es que Windows no es un buen sistema operativo para usarlo en control ni automatización.
Hace unos meses hice una aplicación en Builder 6 que lanzaba dos hebras y, aunque en las pruebas iba OK, una vez cargado en el ordenador de control todo iba mal. Una de las hebras consumía todos los recursos de la CPU y como en las pruebas usaba un PC con doble procesador no lo notaba (solo una CPU se sobrecargaba). Al cargarlo en un PC monoprocesador se ralentizaban todos los procesos y el PC no se podía usar. Windows esa muy mal hecho en cuanto a la gestion del tiempo de CPU, además NO es "real time", ni pretende serlo. Para control es mejor usar un RT Llinux o algo similar, que está diseñado para tiempo real, o dejar el control un micro y usar el PC sólo para supervisión, cargar programas y cambiar parámetros y esas cosas que no requieren tiempo real.