Estoy de acuerdo con zklapow pero también reviso la sección de proyectos en AVR Freaks. Así aprendí en el día anterior a los arduinos. Además, es casi seguro que tendrá que leer la hoja de datos de su chip para hacer algo útil. No hay funciones agradables que, por ejemplo, lean un pin analógico porque hay tantos parámetros que el entorno arduino te oculta. Dejame darte un ejemplo:
int ledPin = 13; // LED connected to digital pin 13
// The setup() method runs once, when the sketch starts
void setup() {
// initialize the digital pin as an output:
pinMode(ledPin, OUTPUT);
}
// the loop() method runs over and over again,
// as long as the Arduino has power
void loop()
{
digitalWrite(ledPin, HIGH); // set the LED on
delay(1000); // wait for a second
digitalWrite(ledPin, LOW); // set the LED off
delay(1000); // wait for a second
}
es más o menos similar al siguiente C (no probado):
int main(void) {
// I just randomly picked pin 6 on PORTB, this may not be the same on an arduino
DDRB = (1<<6); // set pin to output in data direction register
int i; // have to do this outside the for loop because of C standard
while(1) {
PORTB |= (1<<6); // send pin 6 high and leave other pins in their current state
for (i=0; i<10000; i++); // delay
PORTB &= ~(1<<6); // send pin 6 low
for (i=0; i<10000; i++); // delay
}
}
Claro, hay funciones de retraso en algunas bibliotecas y puede haber funciones de salida en otras, pero acostúmbrese a escribir código como este. La única forma de saber qué significan todas estas cosas de PORTB y DDRB es leer la hoja de datos. Lamento hablar sobre esto, pero no hay suficientes personas que se den cuenta de que la hoja de datos es una mina de oro para obtener información.
También debe consultar Eclipse para C / C ++ y el complemento AVR-Eclipse. Funciona perfectamente para mí, especialmente con crosspack. Lo uso desde hace aproximadamente un año y realmente me gusta.
fuente
También uso CrossPack de ObDev . Es un excelente paquete de todas las herramientas necesarias para escribir el código AVR-GCC C. Son las mismas herramientas presentes en una instalación estándar de Arduino, por lo que a veces he usado las agallas del sistema de construcción Arduino para escribir código AVR-GCC simple.
Normalmente cuando escribo código C, el "IDE" que uso es un editor de texto, comandos de línea de comandos y Makefiles. Solo soy más eficiente de esa manera. Tengo una ventana abierta que es el editor de texto (emacs), otra ventana que es compilación, y una tercera o cuarta que está haciendo un monitor en serie o similar. Pero todo eso se puede hacer en una sola ventana de línea de comandos, en cuyo caso los comandos se parecen a:
Además, es posible que desee visitar SmileyMicros.com . Escribió un libro realmente agradable sobre la introducción de la programación AVR GCC basada en la placa AVR Butterfly, antes del Arduino, y desde entonces ha estado actualizando sus ejemplos para incorporar Arduino. Es una buena comparación para ver cómo se realiza la programación AVR C en un chip más complejo que el de Arduino.
fuente
Si instala crosspack , puede usar Xcode de Apple para mac, que es un gran IDE. Si desea aprender c para AVR, consulte el foro de tutoriales en AVR Freaks . También en cuanto a Linux, echa un vistazo a esta pregunta .
fuente
Como has estado usando Arduino, todo lo que necesitas ya está instalado. Recopilo bocetos de Arduino desde la línea de comandos usando un Makefile. También compilo código sin el gestor de arranque Arduino.
El Makefile que uso para compilar el gestor de arranque Arduino para mis tableros está en http://wiblocks.luciani.org/docs/app-notes/bootloader.html. Puede modificarlo para compilar su programa en lugar del archivo ATmegaBOOT_xx8.c.
Mi Makefile está modificado del archivo que encontré en este sitio: http://mjo.tc/atelier/2009/02/arduino-cli.html
Mientras respondía esta misma pregunta (ayer mismo) en Twitter me encontré con un archivo MAKE en dorbotpdx. Ver http://dorkbotpdx.org/blog/ax/arduino_0017_makefile
También hay un script de shell bien documentado en http://arkku.com/misc/arduino_make.sh
Probablemente usaría un Makefile en lugar de un script de shell. El compañero que hizo este script ha hecho un excelente trabajo al comentar el flujo. Es trabajar un vistazo solo para entender el flujo.
fuente
Encontré CodeLite (www.codelite.org) IDE agradable y con todas las funciones; aún así, para programar microchips AVR necesitas crear tu propio Makefile.
Puede probar el Asistente BeRTOS , que creará un proyecto BeRTOS y Makefiles relacionados, que luego puede usar con CodeLite. Para flashear tu objetivo, solo usa "make flash" y listo. Trabajamos en Linux a diario, si tiene más preguntas, publíquelas en la lista de correo. Descargo de responsabilidad: soy un desarrollador de BeRTOS.
Saludos cordiales, Luca
fuente
Si tiene Macports instalado, simplemente puede ejecutar:
y deberías estar listo para partir.
fuente
Si le pide a su sistema de paquetes que instale avr-libc, eso debería darle todo lo que necesita. Yo uso emacs como mi IDE, porque bueno, ver nombre de usuario.
Si desea un archivo make de plantilla, eche un vistazo a uno de mis proyectos en github, por ejemplo, https://github.com/unixbigot/pir-lite
En ese repositorio, avr-tmpl.mk es una biblioteca de archivos MAKE (no escrita por mí). Lo incluye desde su archivo MAKE principal y solo tiene que definir qué chip tiene, la velocidad del reloj y sus archivos. Tengo una copia y la incluyo de todos los archivos make de mi proyecto.
"make program" llamará a avrdude para descargar el código. El archivo MAKE también imprime el tamaño del código al final, para que sepa cuánto espacio le queda.
fuente
Programé mi 'viejo' Duemanilove 'como ISP con la ayuda de este artículo: http://arduino.cc/en/Tutorial/ArduinoISP ¿ Funciona igualmente bien con ATtiny: http://hlt.media.mit.edu/? p = 1229
Eso sí, cuando use Arduino IDE 0022, debe actualizar el boceto ArduinoISP a una versión más reciente, debido a la prevención de spam, moví ese enlace a los comentarios a continuación.
Hice la programación en un editor de texto (vi) y compilé usando avr-gcc como se describe en el artículo mit.edu que vinculé.
fuente
Hola amigo, todavía puedes usar avrstudio en ubuntu. Pensando cómo puedes hacer eso .....
La respuesta es simplemente instalar la aplicación wine y ejecutar esos softwares de windows con wine.
Avr studio, proteus ... incluso los juegos de windows se pueden ejecutar en ubuntu con wine.
Ni siquiera tiene que meterse con los makefiles bla, bla, bla (simplemente instálelo con wine y comience).
Hay muchos sitios para comenzar con los MCU de avr, como extremeelectronics, tutoriales AVR, etc. Simplemente haga una búsqueda en google.
Le diré en detalle cómo instalar avrstudio 4 en wine ya que avrstudio 5 y 6 no funcionan con él, pero puede usar virtual box en linux para ejecutar incluso avr stud 5 y 6 con windows en virtual box.
Abra el centro de software de Ubuntu y escriba wine en la búsqueda y luego instálelo.
Luego obtenga la configuración para avrstudio4 y también necesita instalar win avr
prueba estos enlaces para
a. avr studio 4 http://mycomsats.com/blogs/download-atmel-avr-studio-4-free/
si. win avr http://sourceforge.net/projects/winavr/files/WinAVR/20100110/WinAVR-20100110-install.exe/download?use_mirror=kaz&r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fwinavr%2Ffiles% 2F y use_mirror = kaz
3. Abra la carpeta donde está la configuración de AS (avr studio 4) y luego haga clic derecho y luego ábralo con "Windows Wine Program Loader" o "una aplicación de vino".
4. Luego debe hacer clic en los siguientes botones como lo haría en Windows.
5. Luego, vuelva a instalar win avr de manera similar con wine (vaya a la configuración de win avr ...).
6. Descargue el indicador de menú clásico del centro de software ubuntu. Lo sabrás en solo cinco minutos.
7.Desde el menú clásico -> vino -> Programas -> herramientas avr
el sexto paso es un paso adicional para que no tenga que meterse con dónde está la opción ejecutable avrstudio4 en la carpeta del vino.
fuente