Autor Tema: Velocidad de ejecución de instrucciones  (Leído 5787 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Gabriel22

  • PIC12
  • **
  • Mensajes: 62
Velocidad de ejecución de instrucciones
« en: 11 de Agosto de 2009, 19:21:20 »
Hola, mi pregunta es esta:


Si tengo un pic con un oscilador de 4 Mhz, ¿cuál es el mínimo período con el que puede ejecutar una instrucción?

Si no me equivoco:

T= 1/4.000.000 Hz = 0,00000025 s . Es decir, ¿podría ejecutar instrucciones de 250 nanosegundos?


Gracias y suerte en todo!!!

Desconectado KALLITOS

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1256
Re: Velocidad de ejecución de instrucciones
« Respuesta #1 en: 11 de Agosto de 2009, 20:23:25 »
Hola Gabriel, en los PIC cada instruccion se ejecuta en 4 ciclos de reloj.

Por ejemplo

Cristal         Instrucción
4 Mhz               1 us
20 Mhz             0.2 us

Saludos
A un microcontrolador hay que sacarle hasta el ultimo byte....(YO)

Cómo puede ser que un pic24EP512 me quede corto de memoria, señores de MICROCHIP saquen pics con más memoria flash

Más de 45 mil lineas de codigo y aun no termino el equipo, asu mare!!

S34ML08G1TFI200 no necesito mas memoria externa.

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: Velocidad de ejecución de instrucciones
« Respuesta #2 en: 11 de Agosto de 2009, 22:09:15 »
Cierto.

En el mejor de los casos un PIC a 4MHz correrá a 1MIPS y en el peor a 0.5MIPS porque hay instrucciones que toman 8 ciclos de reloj.

Desconectado Gabriel22

  • PIC12
  • **
  • Mensajes: 62
Re: Velocidad de ejecución de instrucciones
« Respuesta #3 en: 12 de Agosto de 2009, 17:29:17 »
Es decir; ¿podría ejecutar una instrucción que durase sólo 889 microsegundos?

Me refiero a una instrucción del tipo encender y apagar un led.


Gracias por responder y suerte en todo!!!

Desconectado gera

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2188
Re: Velocidad de ejecución de instrucciones
« Respuesta #4 en: 12 de Agosto de 2009, 17:44:40 »
Una sola instruccion q dure todo eso? Lo dudo mucho, salvo q puedas hacer un oscilador RC muy bien calculado, pero ni asi. Si queres hacer una tarea cada X tiempo, tendrias q hacer las rutinas de retraso correspondientes, o usar alguno de los timer.
saludos!

"conozco dos cosas infinitas: el universo y la estupidez humana. Y no estoy muy seguro del primero." A.Einstein

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: Velocidad de ejecución de instrucciones
« Respuesta #5 en: 12 de Agosto de 2009, 18:55:14 »
1 * 4 / 889us = 4,500Hz

Hasta con un 555 podrías echar a andar tu pic  :D

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5544
    • Picmania by Redraven
Re: Velocidad de ejecución de instrucciones
« Respuesta #6 en: 12 de Agosto de 2009, 19:08:52 »
Y yo diciendo que los 0,0416 us de mi 18F4550 es muy lento ... ja, ja, ja  :D :D :D
Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado Gabriel22

  • PIC12
  • **
  • Mensajes: 62
Re: Velocidad de ejecución de instrucciones
« Respuesta #7 en: 13 de Agosto de 2009, 10:10:25 »
¿Entonces sí se puede?



Según esto:
Citar

Cristal         Instrucción
4 Mhz               1 us
20 Mhz             0.2 us

Si puedo ejecutar instrucciones con separación de 1 us, ¿cómo no voy a poder mantenerla 900 us?

Gracias a todos por responder y suerte en todo!!

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Velocidad de ejecución de instrucciones
« Respuesta #8 en: 13 de Agosto de 2009, 10:23:29 »
Pero que quieres hacer??? Si quieres mantener algo prendido durante ese tiempo crea demora, o algo. Por lo general se busca que el PIC sea lo mas rápido posible  :?
No contesto mensajes privados, las consultas en el foro

Desconectado RedPic

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 5544
    • Picmania by Redraven
Re: Velocidad de ejecución de instrucciones
« Respuesta #9 en: 13 de Agosto de 2009, 10:48:28 »
¿Entonces sí se puede?

¿Por qué no lo pruebas y nos dices si funciona o no? Imposible no parece ... 


Contra la estupidez los propios dioses luchan en vano. Schiller
Mi Güeb : Picmania

Desconectado Gabriel22

  • PIC12
  • **
  • Mensajes: 62
Re: Velocidad de ejecución de instrucciones
« Respuesta #10 en: 13 de Agosto de 2009, 15:33:47 »
Es que primero quiero saber si se puede porque no sé cómo se ponen periodos de tiempo inferiores a 1 milisegundo en PBP. Por eso no puedo probarlo.

Me explico claramente: Quiero hacer un proyecto con un led infrarrojo. Necesito que esté encendido 889 microsegundos y que se apague el mismo tiempo. Así se supone que son los ceros y unos que reconoce cualquier receptor en una televisión.


Gracias y suerte!!!

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Velocidad de ejecución de instrucciones
« Respuesta #11 en: 13 de Agosto de 2009, 15:38:47 »
Si lo trabajas a 4MHz, solo basta escribir delay_us(889); -en PBP debe haber alguna funcion similar-, o mejor aun, se puede con un Timer, por ejemplo el Timer2, el cual es muy usado para crear bases de tiempo exactas.

Saludos
El papel lo aguanta todo

Desconectado Gabriel22

  • PIC12
  • **
  • Mensajes: 62
Re: Velocidad de ejecución de instrucciones
« Respuesta #12 en: 13 de Agosto de 2009, 16:11:12 »
¿Con el Timer los tiempos son más exactos?

¿Qué diferencia hay al referirse al Timer0 , Timer2?
« Última modificación: 13 de Agosto de 2009, 16:15:48 por Gabriel22 »

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Velocidad de ejecución de instrucciones
« Respuesta #13 en: 13 de Agosto de 2009, 16:34:53 »
Hola.

Si usas el Timer, el conteo se hace independientemente.

Supongamos que quieres una espera de 1 segundo: Si lo haces con una funcion -con delay_ms(1000);-, durante todo ese tiempo, el PIC no hara nada mas, pero si lo haces con un Timer, puedes seguir con tu codigo normalmente, el conteo lo hace el Timer independientemente.

Diferencias no hay muchas, la forma de configurarlo mas que todo. Revisa el manual de tu compilador para que notes la diferencia.

Saludos
El papel lo aguanta todo

Desconectado Gabriel22

  • PIC12
  • **
  • Mensajes: 62
Re: Velocidad de ejecución de instrucciones
« Respuesta #14 en: 13 de Agosto de 2009, 17:28:29 »
Ahh... Ok , ya  lo he entendido :D

He estado buscando y no encuentro diferencias entre timer0, timer1, timer2....

Además no encuentro ejemplos simples sobre el timer en PBP. Sólo quiero cojer la idea central, saber que es el prescaler, o lo que necesite saber para hacer un delay con timer en PBP.

Gracias y suerte!!! (Perdonad mi ignorancia , aunque supongo que todos pasan por esto alguna vez)
« Última modificación: 13 de Agosto de 2009, 17:35:48 por Gabriel22 »