Go Down

Topic: A que velocidad corren los loops? (Read 2023 times) previous topic - next topic

hola amigos.....estuve trabajando sobre este tema que me ha despertado mucho interés...me gustaría compartir esta información con ustedes y que hagan pruebas en sus placas.....yo solo tengo arduino duemilanove.......

he llegado a la conclusión que el Serial.begin    O lcd.begin      hacen demorar la velocidad de los loop para lograr la comunicación serial ya sea con la pc o con alguna lcd...

hagan la prueba..los escucho
les dejo un código para que les ayude al conteo de la velocidad de los loop......¿Cuantos loop pasan en 1 segundo?

un abrazo a todos.......es mi primer aporte al foro..hace 4 años que trabajo con arduino es hora de devolverles conocimiento a esta gran sociedad

flico

Para saber cuanto tarda en ejecutarse alguna parte del programa con imprimir un millis valdria.
Trabajando en ...

    * Control Domotico (En montaje ...)
    http://casitadomotica.blogspot.com/
 

[url=https://bitbucket.org/fmalpartida

eried

Depende de lo que tenga el loop adentro. Arduino usa un atmega a 16 mhz, que teóricamente son 16 millones de operaciones por segundo, así que viendo la documentación de cada opcode del ensamblado que genera tu código podrías estimar cuanto demora, o bien también con millis como te comenta flico.
My website: http://ried.cl

prueben cargar el sketch que he posteado.....no todo es lo que parece amigos....hay cosas que deben analisarse detalladamente....las comunicaciones seriales segun mis estudios estan demorando el micro para que el micro y la coneccion usb se entiendan..hagan la prueba con mi sketch....y prueben cambiar la velocidad de baudios y se daran cuenta.....espero noticias..haganlo en sus placas..
saludos

ADLC

¿A que te refieres con "demorando al micro"?

El micro sólo entiende de "el siguiente flanco activo de reloj", y ni puede ignorarlo ni sabe evitarlo. El micro si que es un esclavo del reloj.
Además, en esta arquitectura (RISC con arquitectura de memoria Harvard de un ciclo) hay muy muy muy pocos casos en el que el micro inserte un ciclo de stall; esos casos están contados y documentados.

Lo que si está claro es que si se activan interrupciones, estas ocurren en cualquier punto del código "demorando" esa parte de ejecución.
Si no quieres que esto pase, no uses interrupciones, usa polling.
Vinciduino rocks!

manumoli

NO son   16 millones de operaciones  por segundo, te equivocas rotundamente, esa es la  velocidad de  reloj que es muy diferente.
cada instrucion  consume  "x" cilcos de reloj, entonces tenemos que  dividir este ciclo por la frecuencia de  dicho reloj

ADLC

La mayoría de las instrucciones consumen un ciclo; por eso se considera que la arquitectura AVR da (casi) 1MIPS por Mhz.

Sólo los saltos y algunas instrucciones de 16 bits necesitan más ciclos; eso es algo que pasa en todas las arquitecturas ...
Vinciduino rocks!

flico

Quote
Si no quieres que esto pase, no uses interrupciones, usa polling.


Que es polling
Trabajando en ...

    * Control Domotico (En montaje ...)
    http://casitadomotica.blogspot.com/
 

[url=https://bitbucket.org/fmalpartida

ADLC

http://es.wikipedia.org/wiki/Polling
Vinciduino rocks!

lo probare en estos dias....parece muy interesante....si tienen link de trabajos con arduino y polling subanlos...les agradecere...ni bien lo vea subo..

ADLC

El polling tiene ciertas ventajas ... las interrupciones muchas más ...
Vinciduino rocks!

flico


http://es.wikipedia.org/wiki/Polling


No lo veo, si el micro esta pendiente de una tarea no puede hacer nada mas al no usar interrupciones
Trabajando en ...

    * Control Domotico (En montaje ...)
    http://casitadomotica.blogspot.com/
 

[url=https://bitbucket.org/fmalpartida

Go Up