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