Ich programmiere und benutze Arduinos schon seit geraumer Zeit. Ich bin jedoch bereit, auf die Verwendung von reinen AVR-Chips ohne den Arduino-Bootloader umzusteigen. Meine Frage ist, was sind die Ressourcen, um dies zu tun?
Ich möchte Linux / Mac verwenden, also ist winavr ebenso aus dem Bild wie avrstudio. Wenn es so etwas wie das, wonach ich suche, nicht gibt, werde ich mich mit einer virtuellen Windows-Maschine zufrieden geben. Aber bis ich es sicher weiß. Was ich will, ist eine Art IDE, die avr-gcc verwendet.
Als Bonus zu dieser Frage hat jemand gute Ressourcen zum Erlernen von C für avr? Wie konfiguriere ich speziell Makefiles usw. für die verschiedenen Chips?
Ich stimme zklapow zu, aber sieh dir auch den Projektabschnitt auf AVR Freaks an. So habe ich es damals vor Arduinos gelernt. Außerdem müssen Sie mit ziemlicher Sicherheit das Datenblatt für Ihren Chip lesen, um etwas Nützliches zu erreichen. Es gibt keine netten Funktionen, die zum Beispiel einen analogen Pin einlesen, weil es so viele Parameter gibt, die dir die Arduino-Umgebung verbirgt. Lassen Sie mich Ihnen ein Beispiel geben:
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
}
ist in etwa dem folgenden C ähnlich (nicht getestet):
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
}
}
Sicher, in einigen Bibliotheken gibt es Verzögerungsfunktionen und in anderen möglicherweise Ausgabefunktionen, aber gewöhnen Sie sich daran, solchen Code zu schreiben. Der einzige Weg, wie Sie möglicherweise wissen können, was all dieses PORTB- und DDRB-Zeug bedeutet, besteht darin, das Datenblatt zu lesen. Es tut mir leid, darüber zu reden, aber nicht genug Leute erkennen, dass das Datenblatt eine Goldgrube für Informationen ist.
Sie sollten sich auch Eclipse für C/C++ und das AVR-Eclipse-Plugin ansehen. Funktioniert bei mir einwandfrei, besonders mit Crosspack. Ich benutze es jetzt seit ungefähr einem Jahr und ich mag es wirklich.
Ich benutze auch CrossPack von ObDev . Es ist eine großartige Bündelung aller Tools, die zum Schreiben von AVR-GCC-C-Code benötigt werden. Es sind die gleichen Tools, die in einer Standard-Arduino-Installation vorhanden sind, daher habe ich manchmal die Eingeweide des Arduino-Build-Systems verwendet, um einfachen AVR-GCC-Code zu schreiben.
Wenn ich C-Code schreibe, verwende ich normalerweise einen Texteditor, Befehlszeilenbefehle und Makefiles. So bin ich einfach effizienter. Ich habe ein Fenster geöffnet, das ist der Texteditor (emacs), ein anderes Fenster, das Kompilierung ist, und ein drittes oder viertes, das serielle Überwachung oder ähnliches macht. Aber all das kann in einem einzigen Befehlszeilenfenster erledigt werden, in diesem Fall sehen die Befehle in etwa so aus:
% emacs foo.c [Datei bearbeiten] % make [Kompiliercode] % Flash erstellen [auf Chip hochladen] % screen /dev/tty.usbserial 9600 [mit Chip sprechen] ... und dann bei Bedarf wiederholen ...
Sie können auch SmileyMicros.com besuchen . Er hat ein wirklich nettes Buch über die AVR-GCC-Intro-Programmierung geschrieben, die auf dem AVR-Butterfly-Board vor dem Arduino basiert, und hat seitdem seine Beispiele aktualisiert, um Arduino zu integrieren. Es ist ein schöner Vergleich, um zu sehen, wie die AVR-C-Programmierung auf einem komplexeren Chip als dem in Arduino erfolgt.
Wenn Sie Crosspack installieren, können Sie Apples Xcode für Mac verwenden, das eine großartige IDE ist. Wenn Sie c für AVR lernen möchten, schauen Sie sich das Tutorials-Forum bei AVR Freaks an . Sehen Sie sich auch diese Frage für Linux an .
Da Sie den Arduino verwenden, ist alles, was Sie brauchen, bereits installiert. Ich kompiliere Arduino-Skizzen von der Befehlszeile aus mit einem Makefile. Ich kompiliere auch Code ohne den Arduino-Bootloader.
Das Makefile, das ich zum Kompilieren des Arduino-Bootloaders für meine Boards verwende, befindet sich unter http://wiblocks.luciani.org/docs/app-notes/bootloader.html . Sie können es ändern, um Ihr Programm anstelle der Datei ATmegaBOOT_xx8.c zu kompilieren.
Mein Makefile wurde von der Datei modifiziert, die ich auf dieser Seite gefunden habe -- http://mjo.tc/atelier/2009/02/arduino-cli.html
Bei der Beantwortung derselben Frage (erst gestern;) auf Twitter bin ich auf ein Makefile bei dorbotpdx gestoßen. Siehe http://dorkbotpdx.org/blog/ax/arduino_0017_makefile
Es gibt auch ein gut dokumentiertes Shell-Skript unter http://arkku.com/misc/arduino_make.sh
Ich würde wahrscheinlich eher ein Makefile als ein Shell-Skript verwenden. Der Typ, der dieses Skript erstellt hat, hat den Ablauf hervorragend kommentiert. Es ist Arbeit, nur einen Blick darauf zu werfen, um den Fluss zu verstehen.
Ich fand die CodeLite (www.codelite.org) IDE nett und voll ausgestattet; Dennoch müssen Sie zum Programmieren von AVR-Mikrochips Ihr eigenes Makefile erstellen.
Sie können den BeRTOS-Assistenten ausprobieren , der ein BeRTOS-Projekt und zugehörige Makefiles erstellt, die Sie dann mit CodeLite verwenden können. Um Ihr Ziel zu flashen, verwenden Sie einfach "Make Flash" und Sie sind fertig. Wir arbeiten täglich an Linux, wenn Sie weitere Fragen haben, posten Sie diese bitte auf der Mailingliste. Haftungsausschluss: Ich bin ein BeRTOS-Entwickler.
Viele Grüße Luca
Wenn Sie Macports installiert haben, können Sie einfach Folgendes ausführen:
$ sudo port install avr-binutils avr-gcc avr-libc avrdude
und Sie sollten bereit sein zu gehen.
Wenn Sie Ihr Paketsystem bitten, avr-libc zu installieren, sollte Ihnen das alles geben, was Sie brauchen. Ich verwende emacs als meine IDE, weil, naja, siehe Benutzername.
Wenn Sie ein Template-Makefile möchten, schauen Sie sich eines meiner Projekte auf Github an, zB https://github.com/unixbigot/pir-lite
In diesem Repo ist avr-tmpl.mk eine handelsübliche Makefile-Bibliothek (nicht von mir geschrieben). Sie binden es aus Ihrem Haupt-Makefile ein und müssen nur noch definieren, welchen Chip Sie haben, die Taktrate und Ihre Dateien. Ich habe eine Kopie davon und füge sie aus allen meinen Projekt-Makefiles hinzu.
"make program" ruft avrdude auf, um den Code herunterzuladen. Das Makefile gibt am Ende auch die Codegröße aus, damit Sie wissen, wie viel Platz Sie noch haben.
Ich habe meinen 'alten' Duemanilove' als ISP programmiert mit Hilfe dieses Artikels: http://arduino.cc/en/Tutorial/ArduinoISP Es funktioniert genauso gut mit dem von ATtiny: http://hlt.media.mit.edu/? p=1229
Wohlgemerkt, wenn Sie Arduino IDE 0022 verwenden, müssen Sie den ArduinoISP-Sketch auf eine neuere Version aktualisieren. Aufgrund von Spam-Schutz habe ich diesen Link in die Kommentare unten verschoben.
Ich habe die Programmierung in einem Texteditor (vi) durchgeführt und mit avr-gcc kompiliert, wie in dem von mir verlinkten mit.edu-Artikel beschrieben.
Hey Alter, du kannst immer noch avrstudio in Ubuntu verwenden. Überlege, wie kannst du das machen.....
Die Antwort lautet: Installieren Sie einfach die Wine-Anwendung und führen Sie diese Windows-Software mit Wine aus.
avr studio, proteus ... sogar spiele von windows lassen sich in ubuntu mit wine ausführen.
Sie müssen sich nicht einmal mit den Makefiles blah blah herumschlagen (einfach mit Wine installieren und loslegen).
Es gibt viele Websites, auf denen Sie mit AVR-MCUs beginnen können, z. B. Extremeelectronics, AVR-Tutorials usw. Geben Sie einfach eine Google-Suche ein.
Ich werde im Detail erklären, wie man avrstudio 4 in Wine installiert, da avrstudio 5 und 6 damit nicht funktionieren, aber Sie können Virtual Box unter Linux verwenden, um sogar avr Stud 5 und 6 mit Windows auf Virtual Box auszuführen.
Öffnen Sie das Ubuntu Software Center und geben Sie Wein in die Suche ein und installieren Sie es dann.
Dann holen Sie sich das Setup für avrstudio4 und Sie müssen auch win avr installieren
versuchen Sie diese Links für
a. avr studio 4 http://mycomsats.com/blogs/download-atmel-avr-studio-4-free/
3. Öffnen Sie den Ordner, in dem sich das Setup für AS (AVR Studio 4) befindet, klicken Sie mit der rechten Maustaste und öffnen Sie ihn dann mit „Windows Wine Program Loader“ oder „A Wine Application“.
4. Dann müssen Sie auf die nächsten Schaltflächen klicken, wie Sie es in Windows tun würden.
5.Dann win avr wieder ähnlich mit wine installieren (in das win avr setup gehen ....).
6. Laden Sie die klassische Menüanzeige aus dem Ubuntu Software Center herunter. Sie erfahren es in nur fünf Minuten.
7.Aus dem klassischen Menü -> Wein -> Programme -> avr-Tools
Der sechste Schritt ist ein zusätzlicher Schritt, damit Sie sich nicht darum kümmern müssen, wo sich die ausführbare Option von avrstudio4 im Weinordner befindet.
zklapow
davr