Forum: Mikrocontroller und Digitale Elektronik c programmierung AtMega8 Buch Tip


von Andre H. (andre01)


Lesenswert?

Hallo
ich habe mal eine Frage in die Runde der µC Programmierer.
Ich habe habe hier im Forum schon etwas länger gesucht aber nichts 
richtiges gefunden.

Gibt es ein Buch zu kaufen oder im Internet in dem die C-Programmierung 
an Hand eines AT Mega 8 oder AVR einmal komplett erklärt und durch 
genommen wird?
Meine nicht nur Grundfunktionen wie Port ein und aus sondern auch weiter 
über Strukturen, Arrays, Pointer usw.?
Man findet viel über Assembler aber ich finde wenig über C. oder suche 
ich nur falsch.
Das Tutorial hier ist gut. Aber irgendwie fehlt da noch etwas...
Habe 3 Bücher von Elektor aus der Serie "C - Programmierung für 8051" 
die die ganze Sache der Sicht des 8051 auch gut erklären aber wo ist das 
Buch für den AT Mega18 (16,32)???

Gruß
André

von Falk B. (falk)


Lesenswert?

@ Andre H. (andre01)

>Gibt es ein Buch zu kaufen oder im Internet in dem die C-Programmierung
>an Hand eines AT Mega 8 oder AVR einmal komplett erklärt und durch
>genommen wird?

Wie wäre es damit?

AVR-GCC-Tutorial

>sondern auch weiter
>über Strukturen, Arrays, Pointer usw.?

Das steht in JEDEM Standard C-Buch und ist zu 99% direkt übertragbar.

>Das Tutorial hier ist gut. Aber irgendwie fehlt da noch etwas...

Was?

MfG
Falk

von STK500-Besitzer (Gast)


Lesenswert?

Warum in die Ferne schweifen, wenn das Gesuchte doch so nahe liegt:
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial

>Strukturen, Arrays, Pointer usw.?

Standard-C Sachen...

>Das Tutorial hier ist gut. Aber irgendwie fehlt da noch etwas...

Was denn?

C-Buch: Kernighan und Ritchie "Die Sprache C" (oder so ähnlich; ab der 
2. Auflage auch in einer annehmbaren Übersetzung)

>Habe 3 Bücher von Elektor aus der Serie "C - Programmierung für 8051"
>die die ganze Sache der Sicht des 8051 auch gut erklären

Und wo ist das Problem? Ein AVR besteht wie ein 8051 aus den typischen 
Bauteilen wie Registern, einem Rechenwerk und was sonst noch zu einem 
Mikrocontroller so alles gehört.
Der einzig prägnante Unterschied sind die Archtekturen. Der AVR kann im 
Gegensatz zum 8051 keine Programme im dem RAM laufen lassen.
Was ich sagen will: Wenn man schon ein Grundwissen bzgl. 
Mikrocontrollern hat, dann sollte es unproblematisch sein, zwischen 
verschiedenen Controllern zu wechseln.

von Andre H. (andre01)


Lesenswert?

Das Hauptproblem was ich manchmal habe ist halt das Verständnis und den 
Zusammenhang von Arrays und Pointer. Das sollen ja die Sachen sein, die 
an C besonders Spaß machen.

Werde mi mal den Buchtip von STK500 anschauen für weitere einfache gute 
C Buchtips bin ich auch weiter offen.

André

von Karl H. (kbuchegg)


Lesenswert?

Andre H. wrote:
> Das Hauptproblem was ich manchmal habe ist halt das Verständnis und den
> Zusammenhang von Arrays und Pointer. Das sollen ja die Sachen sein, die
> an C besonders Spaß machen.
>
> Werde mi mal den Buchtip von STK500 anschauen für weitere einfache gute
> C Buchtips bin ich auch weiter offen.
>

Die Sache ist die.
C ist eine normierte Sprache. Als solche gibt es daher einen
Sprachschatz der überall gleich ist. Erst bei speziellen
Besonderheiten muss man dann auf die jeweiligen Eigenheiten
eines µC Rücksicht nehmen.

Einige, mich eingeschlossen, sind der Meinung, dass ein µC nicht
unbedingt der beste Einstieg in C sind, wenn es um die Sprache
C an sich geht. Die Gründe dafür sind einfach:
* auf einem PC mit einer vernünftigen Entwicklungsumgebung
  hast du normalerweise bessere Debug-Möglichkeiten als auf
  einem µC.
  Das fängt bei ganz banalen Dingen an. Auf einem PC funktioniert
  ganz einfach die Ausgabe auf die Konsole 'out of the box'. Auf
  einem µC muss man sich dagegen oft noch um so Kleinigkeiten
  wie 'Initialisieren einer Datenverbindung zum Host-System'
  sowie 'Unterjubeln dieser Datenverbindung an das Standard I/O
  System' kümmern. Beides kann einen Neuling in den Wahnsinn
  treiben, wenn es nicht funktioniert.
* Auf einem µC gibt es eine Menge Spezialfunktionalität, die erst
  mal nichts mit C an sich zu tun hat, auf die man sich aber
  gerne stürzt.
  Um C, oder Programmierung im Allgemeinen, von der Pieke auf zu
  lernen, ist nichts davon notwendig. Oder anders ausgedrückt:
  Um zu lernen was es mit Arrays auf sich hat, bzw. wie
  Sortierung im Allgemeinen funktioniert, habe ich mit dem
  Wissen darüber, wie man mit einem Timer eine PWM erzeugt
  nichts angefangen.
* Speziell die kleineren AVR (Mega8, Mega16) haben Limitierungen
  die einem beim Lernen von C an sich das Leben schwer machen
  können. Es macht einfach keinen Spass, wenn man bei jedem
  größeren Testprogramm erst mal alles so zurecht biegen muss,
  daß es in 1KByte SRAM Speicher hineinpasst. Das lenkt vom
  eigentlichen Ziel ab.

Daher: Um C an sich, bzw. Programmierung an sich, zu lernen
bietet es sich an, sich ein Entwicklungssystem für den PC
zu besorgen und dort die ersten Schritte zu machen.
In diesem Sinne ist auch das gcc-Tutorial hier zu sehen. Es
ist weniger eine Einführung in C an sich, sondern mehr ein
Tutorial für jemanden der bereits C kann und die Abweichungen
in der Programmierung von µC kennen lernen will.

Und ja: K&R  (Kernighan und Ritchie) ist nach wie vor der
Buchtip schlechthin.

von Wolfram H. (wherzog)


Lesenswert?

Schau mal hier:

Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie. 
Programmierung in Assembler und C - Schaltungen und Anwendungen 
(Broschiert)
von Günter Schmitt (Autor)

Das ist für mich DAS AVR Buch schlechthin. Alles sehr anschaulich 
erklärt - alle Grundlagen in C und in Assembler.
Das ist wirklich sein Geld wert - und man kann es auch auch dem Klo 
lesen ;-)

von Artur Funk (Gast)


Lesenswert?

Ich kann dir ein Super Tutorial von der Fa. OSTC ans Herz legen:
www.ostc.de/crules.pdf
Hat zwar nichts mit einem AVR zu tun, aber wenn du von Anfang an sauber 
programmieren möchtest, solltest du dir das Dokument einprägen.

von Andre H. (andre01)


Lesenswert?

Danke für die Tips

Habe mal bei einem großen Internetbuchhandel gestöbert und folgendes 
Buch gefunden...
C als erste Programmiersprache. Vom Einsteiger zum Profi

hat das schon einer? Oder hat davon was gehört? Außer die Kommentare bei 
amaz...

André

von Artur Funk (Gast)


Lesenswert?


von Max H. (xam)


Lesenswert?

ich kann mich Wolfram Herzog nur anschliessen. das buch ist der börner

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.