Está en la página 1de 2

Un ejemplo de uso de funciones AVR que no dispone el entorno de Arduino es cuando

queremos hacer delays muy pequeños. La función delayMircoseconds() puede hacer el


delay más pequeño con el lenguaje de Arduino que es de 2 microsegundos.

Para delays menores es necesario usar ensamblador y en concreto la función ‘nop’ (no
operation. Cada llamada a ‘nop’ ejecuta un ciclo de reloj que para 16 MHz es un retraso de
62,5 ns.

Anuncios
INFORMA SOBRE ESTE ANUNCIO

__asm__(«nop\n\t»);
__asm__(«nop\n\t»»nop\n\t»»nop\n\t»»nop\n\t»);   \\ gang them up like this

También como hemos visto anteriormente, manipular los puertos y pines con el código
AVR es más rápido que usar digitalWrite(). Más
información https://www.arduino.cc/en/Reference/PortManipulation

Otro ejemplo es el uso de los métodos AVR cbi y sbi que se usan para hacer set o clear de
bits el PORT y otras variables. Puedes encontrar estos métodos de código AVR en muchos
sitios y ambos deben ser definidos en el sketch de Arduino para ser usados. Pegar este
código al inicio del sketch y para usarlo simplemente poner una variable del puerto y el
pin para hacer set o clear.

#ifndef cbi
#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
#endif
#ifndef sbi
#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
#endif

Pero para programar el 99% de lo que necesitemos en proyectos sencillos con Arduino,
todo esto se puede resumir en que para programar nuestro lenguaje de programación de
Arduino es el “Arduino Reference”, que es donde debemos recurrir para cualquier duda
de programación que surja. Puesto que Arduino provee de unas librerías que facilitan la
programación del microcontrolador. http://arduino.cc/en/Reference/HomePage

A medida que nuestro programa se hace más complejo o necesitamos que sea más
rápido o queremos que tenga un uso de memoria más eficiente, entonces es cuando
tendremos que recurrir a los comando AVR de la avr-libc.

El gran éxito de Arduino en parte se debe a que el IDE nos permite programar una MCU
sin tener que saber todo lo anterior y nos da unas herramientas sencillas y específicas
para programar los microcontroladores que suministra en sus placas. Por ejemplo
veamos las funciones que nos ofrece para comunicar por el puerto
serie: http://arduino.cc/en/Reference/Serial
El IDE de Arduino está basado en Processing: https://processing.org/, es un lenguaje de
programación y entorno de desarrollo integrado de código abierto basado en Java, de fácil
utilización, y que sirve como medio para la enseñanza y producción de proyectos
multimedia e interactivos de diseño digital.

La librería Arduino está basada en wiring: http://wiring.org.co/ y es de donde nacieron las


funciones que conocemos como digitalRead(), Serial.println(), etc…

Web del proyecto de Proccesing: https://processing.org/

Processing en github: https://github.com/processing/processing

También podría gustarte