AdSense

Freitag, 19. Juli 2013

Arduino-Code auf dem Atmega

(English version) Der folgende Beitrag stammt nicht von Udo. Ich habe die große Ehre, einen Gastbeitrag für seinen Blog verfassen zu dürfen ;)

Einen Atmega "von Hand" in C zu programmieren kann ganz schön aufwändig sein - besonders dann, wenn man "besondere" Features wie SPI, I2C etc. nutzen möchte. Hier muss man sich häufig mit kryptischem Code und Register-Geschiebe herumschlagen. Viel einfacher hat man es da, wenn man für Arduino entwickelt. Dank der benutzerfreundlichen Befehlssätze lassen sich diese Wünsche schnell und einfach auch von Anfängern umsetzen. Außerdem gibt es für eine Vielzahl an externer Hardware (z.B. Funk- oder Ultraschallmodule) fertige Libraries. Der Nachteil des Arduinos ist allerdings sein recht hoher Preis. Man möchte schließlich nicht für jedes Projekt einen neuen Arduino für 20 Euro anschaffen.

Da wäre es doch optimal, wenn sich der niedrige Preis und die kompakte Bauform eines Atmegas mit der Benutzerfreundlichkeit eines Arduinos kombinieren liese. Gute Nachricht: dies ist problemlos möglich!

Ich werde es hier am Beispiel eines Atmega8 erklären. Als Erstes braucht man den Mikrocontroller mit passender Grundbeschaltung (Stromversorgung und externer Quarz). Der genaue Aufbau ist z.B auf dieser Seite dokumentiert.

Zudem benötigt man einen Programmer für den Atmega. Ich habe einen USBasp verwendet, den ich günstig bei Ebay erstanden habe. Auch der Programmer muss an den Mikrocontroller angeschlossen werden - wie genau ist der obene genannten Seite zu entnehmen.

Nun kann es mit der Programmierung losgehen. Dazu benötigt man die Arduino-Entwicklungsumgebung. Diese kann hier heruntergeladen werden. Nach der Installation wählt man unter "Datei - Beispiel - 01.Basics" das Beispiel "Blink". Dieses Beispiel lässt eine LED im Sekundentakt blinken. Bevor man den Code auf den Controller spielen kann, muss natürlich noch die LED anschließen. Hier muss man ein bisschen aufpassen: im Code wird mit der Arduino-Pinnummerierung gearbeitet (hier im Beispiel wird Pin 13 verwendet). Welchem Pin das am Atmega entspricht kann man dieser Übersicht entnehmen. Pin 13 des Arduino entspricht also Pin 19 am Atmega8. An diesen Pin wird dann die LED angeschlossen.

Jetzt kann der Code compiliert und auf den µC übertragen werden. Dazu muss zuerst unter "Tools - Programmer" der passende Programmer ausgewählt werden - in meinem Fall der USBasp. Je nach verwendetem Controller müsst ihr auch noch das passende Board auswählen. Ich verwende einen Atmega8, also wähle ich unter "Tools - Board" den "Arduino NG with Atmega8".
Um das Programm auf den Chip zu bringen, wird einfach "Datei - Upload mit Programmer" gewählt. Die Entwicklungsumgebung compiliert nun den Code und überträgt ihn auf den Atmega. Fertig ;)

Auf diesem Weg könnt ihr natürlich auch komplexere Programme auf den Mikrocontroller übertragen. Ich habe beispielsweise über SPI ansteuerte Funkmodule an den Atmega8 angeschlossen. Wie ich das gemacht habe, erkläre ich im nächsten Post.

Keine Kommentare:

Kommentar veröffentlichen