[Python-es] Control de tiempo entre conmutaciones de 0 y 1

Rolando Paz flxpaz en gmail.com
Vie Mar 24 09:48:50 EDT 2017


Muchas gracias a todos por los correos. Logré solucionar mi problema usando
GNURadio. Con dicho ambiente de desarrollo, diseñe un generador de pulsos y
por medio de un USRP estoy entregando los pulsos a mi receptor.

Inicialmente hice un diseño de generacion de pulsos con las bibliotecas de
xilinx. Dicho diseño necesita el control con python de los tiempos que
mencionó Ricardo. Aun creo que es posible hacerlo, pero por ahora solucione
mi problema :)

Gracias de nuevo.

El mar. 23, 2017 5:07 PM, "Ricardo Cárdenes" <ricardo.cardenes en gmail.com>
escribió:

El programa duerme durante 0.01 segundo e imprime (en rápida sucesión) 0 1
0 1. Y repite esa secuencia durante 10 segundos. No parece ser lo que
Rolando quiere hacer.

Y da igual que estés leyendo el reloj hardware, -que depende de muchos
factores, como el sistema operativo, pero no tiene por qué,- el resto del
programa añade retrasos que posiblemente no sean deseables en una
aplicación como esta.

2017-03-22 21:39 GMT-10:00 Narcis Garcia <informatica en actiu.net>:

> No entiendo el porqué el primer código fuente propuesto no debe
> funcionar, ya que se supone que la lectura de tiempo es del reloj de
> hardware.
>
>
> El 23/03/17 a les 03:05, Ricardo Cárdenes ha escrit:
> > Hola Rolando,
> >
> > Creo que es lo mejor para lo que estás haciendo. Si lo quieres hacer
> > programable, busca algún microcontrolador. Un simple Arduino te basta
> > para una tarea como esta.
> >
> > 2017-03-22 5:42 GMT-10:00 Rolando Paz <flxpaz en gmail.com
> > <mailto:flxpaz en gmail.com>>:
> >
> >     Hola a todos.
> >
> >     En efecto Ricardo lo que necesito hacer es controlar los tiempos T0
> >     y T1.
> >
> >     La acción para pruebas fue imprimir los valores 0 y 1, sin embargo,
> >     de acuerdo al hardware que estoy programando, estos valores 0 y 1
> >     los debo ajustar dentro de un registro de software que habilita o
> >     deshabilita la generación de una señal senoidal.
> >
> >     Sin embargo, luego de buscar varias formas de hacerlo con software,
> >     creo que lo más facil sera hacerlo con hardware. Con algun generador
> >     de señales :)
> >
> >
> >
> >
> >     El 21 de marzo de 2017, 22:30, Ricardo Cárdenes
> >     <ricardo.cardenes en gmail.com <mailto:ricardo.cardenes en gmail.com>>
> >     escribió:
> >
> >         Según la presentación del problema, es un ciclo de: "imprimir
> >         0", "esperar T0 segundos", "imprimir 1", "esperar T1 segundos"
> >
> >         2017-03-21 10:07 GMT-10:00 Carlos Zuniga <carlos.zun en gmail.com
> >         <mailto:carlos.zun en gmail.com>>:
> >
> >             2017-03-20 23:05 GMT-05:00 Rolando Paz <flxpaz en gmail.com
> >             <mailto:flxpaz en gmail.com>>:
> >             > Hola a todos de nuevo...
> >             >
> >             > Ahora regreso con un pequeño código:
> >             >
> >             > import time
> >             >
> >             > start_time = time.time()
> >             > #tiempo total en segundos, como ejemplo 10.
> >             > tiempo_total = 10
> >             > #numero de conmutaciones generadas, como ejemplo 4.
> >             > conmutaciones = 4
> >             > for offset in range(tiempo_total):
> >             >     while (time.time() - start_time) < offset:
> >             >         time.sleep(0.01)
> >             >         #lo siguiente realiza una conmutacion entre 0 y 1.
> >             >         count = 0
> >             >         for i in range(conmutaciones):
> >             >             count = (count + 1) % 2
> >             >              print count
> >             >
> >             > Lo que hace este código es conmutar entre 0 y 1, tantas
> >             veces como se defina
> >             > en "conmutaciones", durante el tiempo establecido en
> >             "tiempo_total".
> >             >
> >             > La salida es la siguiente.
> >             >
> >             > 0
> >             > 1
> >             > 0
> >             > 1
> >             >
> >             > Estoy tratando de entender cómo usar este código para
> >             controlar los tiempos
> >             > que se definen en la imagen adjunta, es decir:
> >             >
> >             > T1 = tiempo durante el cual la conmutacion es 1
> >             > T0 = tiempo durante el cual la conmutacion es 0
> >             > Tiempo Total = tiempo total de las conmutaciones
> >             >
> >             > Agradecería cualquier comentario sobre como poder
> >             controlar los tiempos
> >             > anteriores.
> >             >
> >
> >             Tu intención es que espere un tiempo tras cada print de 0 o
> >             1? o que
> >             imprima 0/1 4 veces y luego esperar?
> >
> >                 import time
> >                 from itertools import cycle
> >                 conmutador = cycle((0,1))
> >
> >                 tiempo_total = 10
> >                 conmutaciones = 4
> >
> >                 start = time.time()
> >                 end = start + tiempo_total
> >                 time_per_pulse = tiempo_total / conmutaciones
> >                 while end > time.time():
> >                     pulse_start = time.time()
> >                     print(next(conmutador))
> >                     pulse_end = time.time()
> >                     time.sleep(time_per_pulse - (pulse_end -
> pulse_start))
> >
> >
> >             Ahora, time.sleep no es exacto, el tiempo va a ser
> >             normalmente mayor
> >             al que especificas, depende del sistema. También hay
> >             threading.Event.wait que puede ser más exacto.
> >
> >
> >             Saludos
> >             _______________________________________________
> >             Python-es mailing list
> >             Python-es en python.org <mailto:Python-es en python.org>
> >             https://mail.python.org/mailman/listinfo/python-es
> >             <https://mail.python.org/mailman/listinfo/python-es>
> >
> >
> >
> >         _______________________________________________
> >         Python-es mailing list
> >         Python-es en python.org <mailto:Python-es en python.org>
> >         https://mail.python.org/mailman/listinfo/python-es
> >         <https://mail.python.org/mailman/listinfo/python-es>
> >
> >
> >
> >     _______________________________________________
> >     Python-es mailing list
> >     Python-es en python.org <mailto:Python-es en python.org>
> >     https://mail.python.org/mailman/listinfo/python-es
> >     <https://mail.python.org/mailman/listinfo/python-es>
> >
> >
> >
> >
> > _______________________________________________
> > Python-es mailing list
> > Python-es en python.org
> > https://mail.python.org/mailman/listinfo/python-es
> >
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> https://mail.python.org/mailman/listinfo/python-es
>


_______________________________________________
Python-es mailing list
Python-es en python.org
https://mail.python.org/mailman/listinfo/python-es
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20170324/257c7cd6/attachment.html>


Más información sobre la lista de distribución Python-es