Forum: Mikrocontroller und Digitale Elektronik Programmieren lernen (µC Fachliteratur)


von Tom (Gast)


Lesenswert?

Hallo,

Ich möchte gerne C oder Assembler lernen um µC's zu programmieren, ich 
finde aber keine spezielles C-Tutorial für µC's. Wenn ich normales C 
kennen würde um beispielsweise ein Programm für Windows zu schreiben, 
könnte ich ja immernoch keinen µC programmieren.

Ich brauche also ein Fachbuch über das Programmieren von Mikrocontroller 
in C oder Assembler, in welcher Sprache bin ich mir noch nicht so sicher 
- C scheint mir einfacher zu sein.

Achja, reicht für das programmieren Usbprog, WinAVR, und einen Atmega8 
aus?

Auf Antwort hoffende,
Tom

von Daniel V. (volte)


Lesenswert?

Hallo Tom!

Ich meinerseits bevorzuge PIC Mikrocontroller und verwende den CCS C - 
Compiler. Da bekommt man ein Buch dazu, wo die ganze Syntax erklärt ist, 
ist zwar auf Englisch, aber nicht schwer zu verstehen.
Zuerst habe ich sie in Assembler programmiert, finde es auch etwas 
hilfreich aber nicht notwendig. Wenn du Assembler lernen willst schau 
auf
www.sprut.de, bezieht sich aber auf PIC.
Wichtig ist es, das du die Funktionen des µC kennst, denn Rest erklärt 
dann das Buch...
Zum Programmiern lernen kann ich nur sagen probieren, staunen und ärgern 
:)
ist halt Übungssache, mit der Zeit kommst eh auf die Sachen drauf...
Und einiges kann man sich ja am Anfang abschaunn zur Compilersoftware 
gibts meistens recht hilfreiche Lernbeispiele...

MFG

von starwatcher (Gast)


Lesenswert?

Ich selber habe das Mikorkontroller programmieren mit dem Tutourial auf 
dieser Webseite lernt.
Eine sehr gute Ergänzung dazu ist das Buch "Mikrokontrollertechnik mit 
Controllern der Atmel AVR-RISC-Familie" (ISBN 978-3-486-58400-4)
Dieses Buch enthält sowohl die Grundlagen der 
Mikrokontrollerprogrammierung in C und Assembler, als auch diverse 
Hilfstellungen für Fortgeschrittene und einige Beispielprojekte.
Ich kann diese Buch nur empfelen.


Mit den geannten Dingen müsstest du eigendlich alles machen können (ich 
bin mir jedoch nicht sicher, ob WinAVR usbprog unterstüztz).
Ich selber verwende einen Selbstbau ISP-Programmer 
(http://rumil.de/hardware/avrisp.html).

Was für den Anfänger evtl. auch ein Lohnende Investition wäre, ist ein 
Evaluationsbord mit diverser Peripherie(LEDs, Taster,...), z.B. das 
Atmel Evaluationsboard von Pollin.

von Hannes J. (Firma: _⌨_) (pnuebergang)


Lesenswert?

C lernt sich wesentlich besser auf einem PC, da man sich am Anfang mit 
weniger Baustellen rumschlagen muss. Man hat keinen Ärger mit dem 
Programmer und kann einfacher Fehler suchen. Wichtig ist allerdings 
wirklich nacktes C und nicht etwa haufenweise 
Betriebssystem-Besonderheiten (Microsoft ...) zu lernen. Den K&R 
durchzugehen lohnt sich.

Beherrscht man C, kann man sich den Ärger :-) schrittweise hinzu nehmen. 
Einen Programmer (die Kombination aus Hard- und Software) will erst 
einmal verstanden werden. Die Schaltung einer einfache 
Entwicklungs-Hardware genauso. Nicht zu vergessen der Mikrocontroller 
selber (Datenblatt lesen, verdammt nochmal!). Gerade bei C muss man sich 
das nicht parallel zum Lernen der Sprache antun.

Beim Wechsel von nacktem C auf ein C für einen speziellen 
Mikrocontroller muss man sich ein paar Dinge wieder abgewöhnen 
(Speicherplatz verschwenden, mal eben stdio-Funktionen verwenden, 
dynamische Speicherallozierung, usw.), doch das ist wenig. Hinzu kommen 
dann die speziellen Funktionen und Erweiterungen für den jeweiligen 
Mikrocontroller (Compiler- und Bibliotheks-Handbuch lesen, verdammt 
nochmal!). Darauf aufbauend dann die spezifische Programmierung der im 
Mikrocontroller eingebauten Hardware und der angeschlossenen Peripherie.

von Tom (Gast)


Lesenswert?

Danke für die Antworten, ich werde mir die Vorschläge zu Herzen nehmen 
:).
Ist der K&R anfängertauglich?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.