Archiv verlassen und diese Seite im Standarddesign anzeigen : Bitte um Tipps für den Einstieg von AVR Programmierung mit der Programmiersprache C
Auf-gutem-weg
05.10.2011, 21:10
Hallo zusam,
ich habe vor in das Programmieren von AVR Mikrocontrollern einzusteigen. :)
Ich habe mich zwar schon auf den Seiten des RN Wissens versucht zu informieren, dieses ist aber für mich zu wenig um einfach einzusteigen.
Jetzt ist meine Frage, kann mir jemand ein Lernpaket/Board/Bausatz und ein Buch, am besten sowas wie" AVR Microkontroller Programmieren mit c von Anfang an", oder sowas in der Richtung empfehlen? Halt was für den leichten Einstieg. ;)
Ich bin gerade 20 und Schüler. Darum leichter Einstieg;)
(Die Lernpakete von Franzis sollen sehr schlecht beschrieben sein, zudem das meiste in Bascom.) :(
Zur Info vlt. , ich beherrsche die Programmiersprache C. Deshalb möchte ich auch dabei bleiben. ;)
MFG
-Auf-gutem-weg
radbruch
05.10.2011, 21:29
asuro (http://www.rn-wissen.de/index.php/Asuro)?
Braucht aber etwas Löterfahrung.
Viel Erfolg.
mic
Besserwessi
05.10.2011, 21:39
Wenn man C schon kennt, kann man auch gut dabei bleiben. Als Compiler für den Einstiegt bietet sich dann GCC an, vermutlich als WinAVR zusammen mit AVR Studio. Die Software kann man kostenlos aus dem Internet bekommen. An die Bedienung gewöhnt man sich vermutlich am besten wenn man die benutzt - viel an Tutorials kenne ich dazu nicht, nur die Online Hilfe. So viel anders als eine IDE am PC ist das vermutlich auch nicht.
Für die Einführung gibt es eigentlich reichlich Tutorials im Netz, und um das lesen eines Datenblattes zum µC (z.B. Mega48/88/168 Gruppe) kommt man kaum herum. Das geht ggf. auch ohne die Hardware. Bei der Hardware ist das so eine Sache: die alten Bausätze (z.B. von Pollin) setzen relativ oft noch einen PC mit LPT oder wenigsten einer echten RS232 vorraus. Zur Programmierung braucht man einen Programmer oder ein Board, wo der µC mit Bootloader kommt.
Das meiste wurde ja schon gesagt...
Ein Asuro ist für den Anfang gut geeignet, insbesondere wenn du eh schon Erfahrung mit C hast. Und der GCC ist ein hervorragender Compiler (dazu auch noch kostenlos), als IDE würde ich allerdings nicht AVR-Studio empfehlen sondern Eclipse, denn komfortabler gehts kaum.
Vielleicht noch ein paar Besonderheiten, mit denen du bei der Programmierung von Mikrocontrollern zwangsläufig konfrontiert wirst:
1. Register
Alles was mit dem µC selbst (oder der Peripherie) zu tun hat läuft über Register, egal ob z.B. du einen bestimmten I/O Pin setzen oder die UART-Schnittstelle konfigurieren möchtest. Wenn du in C auf ein Register zugreifen möchtest funktioniert das über vordefinierte Pointer (zu finden in den zu dem verwendeten µC gehörenden Header-Files). Welche Register es gibt, wofür sie verwendet werden und welche Besonderheiten beachtet werden müssen steht im Datenblatt (ohne Datenblatt geht bei der µC Programierung garnichts).
2. Interrupts
Am PC hat man mit Interrupts üblicherweise wenig bis garnichts zu tun, bei Mikrocontrollern ist das anders. Prinzipiell muss man zwar keine Interrupts nutzen, aber richtig schnell/effizient/elegant wirds erst wenn man verstanden hat wie Interrupts funktionieren und wozu man sie einsetzen kann.
3. Die Standardbibliothek
Die C Standardbibliothek ist eine feine Sache, aber leider nicht unbedingt für Mikrocontroller optimiert. Gerade wenn man Funktionen wie sprintf() oder sscanf() verwendet, explodiert die Codegröße regelrecht. Natürlich sind nicht alle Funktionen der Standardbibliothek "böse", aber man sollte sich der Problematik bewusst sein.
danimath
06.10.2011, 08:58
Moin,
(Die Lernpakete von Franzis sollen sehr schlecht beschrieben sein, zudem das meiste in Bascom.)
Das hat mich auch davon abgehalten.
Evtl. AVR-Microcontroller in C programmieren (http://www.amazon.de/AVR-Mikrocontroller-programmieren-Selbstbauprojekte-ATtiny13-ATmega32/dp/3645650199/ref=sr_1_1?ie=UTF8&qid=1317884072&sr=8-1) was für Dich. Anfangs fand ich es noch nicht so prickelnd, aber nach mehrfachem Lesen konnte ich doch einiges raus ziehen. Allerdings werden einige Dinge sehr (zu) knapp abgehandelt. Als Einstieg vielleicht ganz OK.
viele Grüße
Andreas
oberallgeier
06.10.2011, 09:54
... Programmieren von AVR Mikrocontrollern ... ein Lernpaket/Board/Bausatz ... (... Lernpakete von Franzis ... sehr schlecht ...) ...Ich hatte vor vier Jahren als ziemlicher Noob (auf dem Gebiet Elektronik und µC) angefangen mit dem Lernpaket Mikrocontroller (klick) (http://www.franzis.de/elektronik/lernpakete-elektronik/lernpaket-microcontroller) oder hier ne ausführliche Beschreibung (klick). (http://www.ak-modul-bus.de/stat/lernpaket_mikrocontroller.html) Darin sind viele Experimente sehr klar und für mich verständlich dargestellt. Die Experimente sind einfach und sehr übersichtlich. Das Buch steht immer noch neben meinem Hobbyarbeitsplatz, weil es elementare Grundlagen einfach erklärt. Die Experimentierplatine nutze ich auch heute manchmal für einfache Lösungen oder Teilfragen. Ein Programmer ist nicht erforderlich, geflasht wird über die EIA232. Die Programmierung in C ist mit AVRStudio und PonyProg simpel zu erledigen.
Die Programmiersprache im Buch ist - erstmal - Assembler, später kommen sehr kurze Ausflüge in Bascom und C - als ob es nach dem ABC ginge *ggg*. Für die einfachen Beispiele und für den Einstieg ist Assembler optimal. Ausserdem muss auch in C der Hardwarebezug sehr ähnlich den Ausdrücken in Assembler geschaffen werden. Daher ist dieser Weg eine ziemliche Hilfe für ne spätere C-Programmierung.
Diesen Einstieg würde ich heute wieder so machen. Aber man soll ja immer das wählen, was einem gefällt.
... Der Schwerpunkt des Lernpakets liegt in der Vermittlung der Grundlagen hardwarenaher Mikrocontroller-Programmierung ...Eben.
Auf-gutem-weg
06.10.2011, 12:02
Vielen Dank für die Antworten. :)
So ich habe mir schon mal ein boad herausgesucht womit ich auch den ATmega32 programmieren und testen kann(Polin Atmel evalutionsboard). Wie es auch im RN tutorial beschrieben ist. ;)
Aslo das Buch "AVR-Microcontroller in C programmieren", wird mir denke ich mal nur bedingt weiterhelfen, da ich ja nicht nur einfach die beschriebenen sachen aufbauen und programmieren will, sondern erstmal einen allgemeinen Einstieg starten will. Also Grundstrukturen, erklären von Registerbenutzen usw. und das natürlich am besten mit programmbeispielen. :P
Habt ihr da iwi konkrete Buchtipps die ihr mir da geben könntet?
Ich habe eig nur welche gefunden für AVR Assambler programmierung mit angeschnittenem C teil :(
Besserwessi
06.10.2011, 17:55
Bei der Registerbenutzung ist es ziemlich egal ob man das in C oder ASM macht. So viel extra Unterstützung bietet des C (und GCC-AVR) nicht, eigentlich nur den zugriff auf 16 Bit Register. Für die Erklärung der Hardware ist das Datenblatt (als .PDF von Atmel.com erhältlich) die erste Referenz. Nach einer groben Erklärung z.B. der Timer oder des AD-Wandlers in einem Tutorial sollte man eigentlich in der Lage sein den Rest auch aus dem Datenblatt zu lesen. Der einzige Nachteil ist halt dass die Datenblätter in Englisch sind.
Hallo,
hier: https://www.roboternetz.de/community/threads/54616-Schnelleinstieg-in-die-Mikrocontroller-Programmierung
hab ich meinen Einstieg beschrieben. Hat ganz wenig gekostet. Diese Lernpakete halte ich für überteuert.
Das genannte Buch ist brauchbar, aber im Internet findet man auch genug Tutorials, Skripten und Programmbeispiele, wenn man eine Suchmaschine bedienen kann.
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.