Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Uso De La Instrucción Wait En Raspberry
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Uso De La Instrucción Wait En Raspberry 
 
Trato de hacer una aplicación de medida de tensión alterna. El caso es que quiero detectar el paso por cero. Eso lo tengo que hacer en un lapso de 10ms
entonces le digo
wait 0.0001
pero se bloquea en el bucle while que lo contiene
¿hay alguna manera de esperar un tiempo determinado sin entrar en un bucle recursivo infinito?
 



 
jcanon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Uso De La Instrucción Wait En Raspberry 
 
Sin ver tu código (o la parte que mencionas) no creo que sea fácil ayudarte.

Creo por otra parte, que wait no puede manejar tiempos por debajo de 1ms en el mejor de los casos.

Muéstranos qué estás haciendo y será más fácil ayudarte.

Saludos
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Uso De La Instrucción Wait En Raspberry 
 
jcanon escribió: [Ver mensaje]
tengo que hacer en un lapso de 10ms
entonces le digo
wait 0.0001


Ehmm... para empezar, 10ms es...
Wait 0.01
  
 



 
última edición por vuott el Sabado, 24 Enero 2015, 23:25; editado 2 veces 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Uso De La Instrucción Wait En Raspberry 
 
Hola amigos
Totalmente de acuerdo con los comentarios y vuott jguardon   ...
Jcanon, tienes que decirnos más acerca de lo que quieres hacer ... Si este es el código (o parte del código), al menos, la idea general.
Probablemente una condición simple podría resolver su problema sin tener que pasar por un bucle ...
Buenos días a todos.
 



 
didier18 - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Uso De La Instrucción Wait En Raspberry 
 
Pues tenéis razón, debería haber puesto código o pseudo  código. Pero lo tenía muy ponzoñoso... , soy un poco bruto.

Pero ya he llegado a una solución y conclusiones, que espero puedan ayudar en algo.

Usando el Wait creo que lo que hago es poner el programa al servicio de los eventos que sucedan. Por eso, cuando lo usaba y movía el ratón en la aplicación me salia del bucle infinito y me enviaba algunos datos. Sino hay eventos se queda pillado en ese bucle infinito, se acababa colgado la raspberry. Creo que con tiempos muy bajos no va bien.

Así que he cambiado el wait en un bucle while por un temporizador. Los timer1 tienen una unidad mínima de 1 milisegundo (osea en 1 segundo tenemos mil de estas unidades).
Cuando arranco la lectura que me interesa, con un botón, lo que hago en realidad es encender ese timer1 ( con delay = 1 , osea 1 milisegundo) para que ejecute mi rutina (rutina que contendrá en su respuesta al evento timer1) con tiempos de espera entre ejecuciones de 1 milisegundo.
Después de ejecutar la rutina lo vuelvo activar, para que así siga en bucle hasta que pare el timer1 con otro botón de aplicación, que suponga la parada de lectura.

Para comprobar mi condición crítica de tiempo de ejecución uso variable_tiposingle=Timer(). Con ella tomo diversos puntos de tiempo en mi código y hallando la diferencia de estos valores consigo  tiempos de ejecución. Este tiempo que me da es variable pues la raspberry no deja de ser un único procesador que se apaña para atender el sistema operativo y la interfaz gráfica. Pero lo limito a un máximo de 10 milisegundos.

En mi aplicación quiero tomar unos valores de corriente alterna desde que pasa por cero la onda hasta que vuelve a pasar. Nuestra corriente en Europa es de 50 Hz (osea hace un ciclo entero=1/50 = 20 milisegundos). Cada ciclo pasa 2 veces por cero, teniendo un tiempo limitante de 20/2= 10 milisegundos.

Mis resultados es que con todo esto consigo ver los datos en como mucho 4 milisegundos, me sobrán 6 milisegundos del tiempo natural de la semionda.

Vamos, es fantástico. Con gambas en la rasberry he conseguido tiempos pequeños sin tener que definir otra función en C.
Decir que le voy a tener que montar un disipador por que sino se me a churruscar el procesador, pero funciona y no se queda colgada.

Muchas gracias a todos por echarle un vistazo a mi problema. En bastante tiempo me he visto solo. Mejoraré mis formas. Espero y deseo servirle de ayuda a alguien. Bicos desde Galicia.
 



 
jcanon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Raspberry Pi 2 Y Gambas3 jsbsan General 6 Jueves, 18 Febrero 2016, 07:19 Ver último mensaje
shordi
No hay nuevos mensajes ¿ Alguien Ha Usado La Instrucción Swap? Shell General 5 Jueves, 21 Julio 2016, 09:03 Ver último mensaje
Shell
No hay nuevos mensajes [SOLUCIONADO] ProgressBar, Wait Y Mi Pacie... Grandamakulo Controles/Librerías/Componentes 9 Jueves, 02 Agosto 2018, 20:24 Ver último mensaje
Grandamakulo
No hay nuevos mensajes Cambiar Algo Que Gambas Hace Por Defecto A... Shell General 4 Domingo, 22 Marzo 2020, 12:56 Ver último mensaje
Shell
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 0 invitados
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron