www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik C Programmierung usw.


Autor: Franzi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi!
Ich würde in nächster zeit gerne anfangen, einen ATmega32 zu
programmieren.
Meine Fragen dazu sind:

- Ist es unbedingt notwendig "das hohe C" perfekt zu können, dass
ich gerade im DOS lerne, bevor ich auf einen C-Compiler für uC wechsle
oder ist es besser gleich mit einem C-Compiler für uC
herumzuprobieren??

- Welcher C-Compiler ist zu empfehlen?

- Mit welchen Büchern habt ihr gute Erfahrung gemacht und sollte man
sich besser ein Buch für den Compiler oder für den uC kaufen, oder
sogar beides?

vielen dank im voraus
Franzi

Autor: vorbeigeschlendert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das hohe C zu können ist am Anfang sicherlich nicht notwendig und DOS
hat damit (fast) nichts zu tun - auch wenn ich diese Frage sowieso
nicht wirklich verstehe...

nimm (für ATmega-Projekte) am besten WINAVR (falls Du mit Windows
arbeitest), dann dazu findest du hier sicher die beste Unterstützung

Bücher gibt's wie Sand am Meer - vielleicht einfach mal ein
Anfängerbuch über ANSI-C durchschauen - oder diverse Online
C-Lernseiten und nicht zu vergessen hier das AVR-GCC-Tutorial

Grüße

Autor: Sascha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich denke es kann nicht schaden, erstmal die Grundkenntnis der C
Programmierung auf einem PC (also DOS, Windows, Linux, ...) zu lernen.
Fehler zu finden und daraus zu lernen ist dort sicher einfacher
(Debugging) als auf eine uC, den man emulieren muss. Auch Ausgaben
lassen sich viel besser nachvollziehen, da sie direkt auf dem Schirm
erscheinen.

Was bedeutet schon "perfekt" können ?

Für uC gibt es glaube ich nur einen Compiler.

Autor: Philip Rehkop (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

ich würde dir auch WinAVR empfehlen(für Win).

Wenn du C für uCs lernen willst, aber die benötigte Hardware noch nicht
hast, kannst du den erzeugeten Code auch mit dem kostenlosen AVR-Studio
simulieren. Ich denke, dass das sinnvoller ist, als zuerst C für DOS
u.ä. zu lernen, weil man viele Dinge wie z.B. Bitmanipulation auf uCs
deutlich häufiger braucht, als bei der PC-Programmierung.

Gruss, Philip.

Autor: Wiesi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Als Buch kann ich "Das C Grundlagen Buch" (Gerhard Willms, Data
Becker) empfehlen. Gibt´s mittlerweile glaub ich auch in ner "C++
Edition" oder so (in dem man aber trtzdem noch plain C lernen kann).

Hat run 1100 Seiten. Mit dem hab ich´s gelernt.
Hat viele Beispiele und zeigt viele mögliche Fehler auf, bevor man
sie selbst begeht.

   Wiesi

Autor: Frank (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Schliesse mich der Meinung von Sascha an. Wenn du mit C noch nicht gut
vertraut bist, dann führst du deine Übungen einfacher an einem Dos,
Windows oder Linux C-Compiler durch. Alleine der Vorgang beim Testen
eines programmes geht komfortabler und schneller (keine Programmierung
des uPs).

Tutorials - teils gesamte Kurse - zu C findest du eine Menge im
Internet.

Du wirst sehen, nachdem du die wesentlichen Elementen verstanden hat,
erlernst du die uP-spezifischen Dinge im Handumdrehen.

Beste Grüsse
Frank
PS: Ich glaube, den Borland-C Compiler V4.5 gibt es inzwischen sogar
kostenlos.

Autor: pebisoft (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
für den avr nimm winavr-c , ist zu empfehlen.
programmiereditor und gleich mit dem avrdude vom editor in dem avr.
mfg pebisoft

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habs auch so gemacht, zuerst auf DOS die Syntaxgrundlagen und alles
austesten und dann auf dem eigentlichen µC.

Insbesondere, wenn man mit den logischen Operatoren (&, &&; <<, ~, !
usw.) und den Zahlenformaten noch nicht so fit ist.

Wenn also mal ne Schleife nicht da abbricht, wo man es will, einfach
unter DOS durchsteppen.


Peter

Autor: Werner B. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aber beim Üben unter DOS/Windwows/*nix

-- hüte Dich vor den OS-spezifischen Konstruktionen die in fast allen
aktuellen Büchern zu finden sind.
Klares "Basis" C lernt man meiner Meinung nach nur aus der C-Bibel ->
"The C Programming Language (2nd Edition)" von Brian W. Kernighan und
Dennis M. Ritchie, oder kurz "K&R". (Deutscher Titel "Programmieren
in C ")

Autor: DC4FRT (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
und wenns auch net gleich en ATmega sein muss dann ist auch CodeVision
(gibts auch ne kostenlose Version) noch recht gut. (gefällt mir z.B.
persönlich besser als winavr).
Aber ansosnt wies die anderen schon sagen, erst mal so C bzw. ne
Programmiersprache lernen damit man mal die Grundkenntnisse hat.
Bei Büchern: hm.. ich hab halt goto C++ gehabt weil ich eh noch C++
lernen musste. Aber da gibts echt en haufen Bücher bzw. recht viele
Tutorien im Internet.

Gruß Thomas

Autor: Daniel Braun (khani)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Meine Vorschläge wären,

- ein Buch, wie man mit den AVR (bei Dir ja dann wohl ATmega32) umgeht
hat keinen Vorrang. Wenn man sich mal das Datenblatt (vorausgesetzt, Du
kannst Englisch mit Schulkenntnissen und hast Zugriff auf ein Wörterbuch
- dict.leo.org) ansieht, dann wird da schon sehr viel erzählt. Falls
man's dann immer noch nicht versteht, kann man ja auch noch hier
nachfragen.

- An Deiner Stelle würde ich mir für die ersten Schritte am PC etwas
von www.bloodshed.net (Dev-C++) runterladen. Damit kann man dann auf
dem PC mit C experimentieren.

- Ein Buch für die Grundlagen von C bzw. C++ wäre ganz nett. Ich kann
allerdings den K&R nicht für den Anfang empfehlen. Am besten da
irgendwas nehmen, was eine gute Menge Text beinhaltet. Zu viel
Schnichschnack braucht man am Anfang eh nicht, da die großen Internals
von C meist auf den Mikrocontrollern am Anfang keine Rolle spielen.

- Für den Einstieg auf dem Controller erst mal eine Steckbrett oder ein
fertiges Experimentierboard beschaffen. Fertige Boards haben den
Vorteil, dass man Fehler in der Elektrik meist ausschließen kann.

- Dann das AVR-Studio von Atmel herunterladen und ein bißchen mit
Assembler spielen - das hilft beim prinzipiellen Verständnis des
Controllers. Wenn's dann später größer und abstrakter wird, dann kann
man immer noch C nehmen

- Als C-Compiler für den AVR als Hobby- oder für wissenschaftliche
Kleinanwendungen würde ich den AVR-GCC (WinAVR für Windows) empfehlen.
Der Vorteil ist, dass er keinerlei Beschränkungen im Umfang hat. Der
zweite Vorteil ist, dass der Support in Foren sehr gut ist. Selbst wenn
man mal wirklich komplizierte Fragen hat, gibt es hier sehr versierte
Experten.

- Am Wichtigsten : Am Anfang mal ganz einfach Sachen machen : -LEDs
blinken lassen, Hallos über UART an den PC senden, Display anschließen,
...
Wenn man sich am Anfang übernimmt, dann wirds übel schwer.

MfG, Daniel.

P.S.: Falls Du mit einem steckbrett arbeiten willst, dann schaff Dir am
besten einen fertigen Programmieradapter an, der ist nämlich die
beliebteste Fehlerquelle hier im Forum.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.