Pages: [1]   Go Down
Author Topic: A que velocidad corren los loops?  (Read 1818 times)
0 Members and 1 Guest are viewing this topic.
Argentina
Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

* contador_mhz_loop.pde (0.45 KB - downloaded 20 times.)
Logged

0
Offline Offline
Edison Member
*
Karma: 8
Posts: 1040
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Trabajando en ...

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

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

Chile
Offline Offline
Edison Member
*
Karma: 35
Posts: 1251
Arduino rocks?
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

My website: http://ried.cl

Argentina
Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Malaga
Offline Offline
Sr. Member
****
Karma: 6
Posts: 319
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

¿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.
Logged

Vinciduino rocks!

Offline Offline
Jr. Member
**
Karma: 0
Posts: 65
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Malaga
Offline Offline
Sr. Member
****
Karma: 6
Posts: 319
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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 ...
Logged

Vinciduino rocks!

0
Offline Offline
Edison Member
*
Karma: 8
Posts: 1040
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Que es polling
Logged

Trabajando en ...

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

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

Malaga
Offline Offline
Sr. Member
****
Karma: 6
Posts: 319
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Vinciduino rocks!

Argentina
Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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..
Logged

Malaga
Offline Offline
Sr. Member
****
Karma: 6
Posts: 319
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

El polling tiene ciertas ventajas ... las interrupciones muchas más ...
Logged

Vinciduino rocks!

0
Offline Offline
Edison Member
*
Karma: 8
Posts: 1040
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset


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

Trabajando en ...

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

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

Pages: [1]   Go Up
Jump to: