¿Cuanto demora en ejecutarse una sentencia en el lenguaje arduino?

Hola a todos,hace aproximadamente dos meses compre una placa arduino uno y ya me he familiarizado con el hardware y software ,pero hay algo que no tengo claro y me gustaría consultarlo con ustedes.la cuestión es la siguiente.
¿Cuanto demora en ejecutarse una sentencia en el lenguaje arduino?

Averiguando me encontré con que el lenguaje de programación arduino se basa en C/C++,por lo tanto,sería un lenguaje de alto nivel y como un lenguaje de alto nivel es altamente independiente del procesador no existiría una clara correspondencia entre las instrucciones(o sentencias) del lenguaje arduino y el lenguaje de nemónicos propio del ATmega328p(lenguaje de máquina o de bajo nivel).además una sentencia de alto nivel por lo general corresponde a un conjunto definido de instrucciones de bajo nivel,un claro ejemplo de esto sería el menor número de sentencias que presenta el lenguaje arduino respecto del lenguaje de máquina del ATmega328(120 y 131 respectivamente).

Revisando la hoja de datos del ATmega328p se observa el número de ciclos de reloj correspondientes a cada instrucción,y conociendo la frecuencia del clock utilizado es posible saber el tiempo que demora cada instrucción en ejecutarse.Por lo tanto existe absoluta claridad en cuanto a los tiempos de ejecución, pero esto, siempre y cuando sea utilizando las "instrucciones del lenguaje de máquina".

sabiendo esto entonces la pregunta que nos podemos hacer sería¿cual es la correspondencia entre una sentencia del lenguaje arduino y la o las instrucciones del lenguaje de máquina?.Creo que sabiendo esto sería una manera de determinar el tiempo que demora en ejecutarse una sentencia

estare en lo correcto con el anális realizado? espero me puedan ayudar.

de antemano muchas gracias.

No hace falta bajar a código de máquina, hay un post (tengo la dirección en moodle pero están en mantenimiento aprovechando el carnaval) donde se comentaba justo esto. Las funciones de arduino están llenas de código extra que genera perdida de tiempo, no hay una regla fija, cada función tiene más o menos basura.

Un Digitalwrite(pin, estado) tiene por detras casi 20 lineas de código y se puede resumir en un par de ellas.

Busca el post que te comento era muy instructivo. Salu2

@ionhs cuando tengas el enlace me lo pasas.

Una tontería que casi todos imagino que sabéis. Entiendo que queréis saberlo más bien como curiosidad técnica ya que a nivel práctico se puede medir el tiempo de ejecución con la instrucción micros().

flico:
@ionhs cuando tengas el enlace me lo pasas.

Puf como están migrando el servidor... se sabe cuando empiezan pero no cuando acaban. Me he puesto a buscar el post que vi hace un tiempo. Me ha costado pero aquí está: http://arduino.cc/forum/index.php/topic,86962.0.html lo interesante está hacia el final. Salu2