www.mikrocontroller.net

Forum: Compiler & IDEs Anfangen mit C


Autor: Peter Zimmer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ist es emfehlenswert mit C Abzufangen wenn man den Assembler nicht gut 
blickt? Wenn ja kann man gleich mit C Anfangen oder soll man erst BAsic 
lernen? Habe mal ein wenig mit GFA-Basic rumexperimentiert!
Danke schonmal.
Peter

Autor: Berndt Brandes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Peter,
Basic ist sehr schön, aber wenn mal irgendwas nicht implementiert ist 
(im Compiler) entsteht sehr schnell ein furchtbar unübersichtlicher 
Code, und C zu lernen ist nicht schwieriger als irgendeine andere 
Programmiersprache. C ist hochgradig portabel, Basic in der Regel 
überhaupt nicht. Alle Welt spricht C, Basic ist immer 
Implementierungssache. Meine Erfahrung (und die vieler anderer) ist: mit 
C gehts immer noch am besten, und viele können helfen. Für die AVRs 
scheint mir WINAVR das Ding schlechthin zu sein. Allerdings solltest Du 
dich schon ein bischen mit dem Assembler auskennen, hilft manchmal um 
Missverständnisse zwischen Dir und dem Compiler zu entdecken wenn man 
sich das Compilat anschaut. Besorg Dir Kernighan, Ritchie: 
"Programmieren in C", da steht alles drin, was man braucht.
Hoffe das hilft Dir
Berndt

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Peter,

ich kann Berndt nur zustimmen. Vergiß alles und nimm C !!
Ich kann Dir aus Erfahrung sagen, daß man den Assembler-Code nicht mehr 
vollständig verstehen muß. Die 8051-Controller konnte ich damals noch 
komplett in Assembler programmieren, aber die neuen viel 
leistungsfähigeren Controller wie z.B. die C167'er von Intel haben 
bereits einen so umfangreichen Befehlssatz, daß es fast unmöglich ist 
fehlerfreie Programme oder sogar kürzere Programme als das Compilat zu 
entwickeln. Ich gehe daher so vor, daß ich ausschließlich C programmiere 
und mir immer .LST-Files generieren lasse. Die kann ich mir dann ansehen 
und "interpretieren". Das geht, wenn man grundsätzlich weiß, wie 
Assembler im Durchschnitt aussieht ganz gut, obwohl man den genauen 
Befehlssatz nicht komplett kennt. Damit kann man immerhin beurteilen, ob 
der C-Code effektiv ist oder nicht. Auch muß man nicht für jeden Befehl 
wissen, ob er nun das Carry-bit beeinflusst oder nicht. Aber das 
brauchst Du eigentlich nur machen, wenn Du zeitkritische Funktionen 
entwickelst, für kleinere Programme ist das alles völlig egal. Der 
Vorteil von C ist jedenfalls, daß du den Code ohne größeren Auffwand auf 
jedem anderen Rechner laufen lassen kanst, wenn Du den entsprechenden 
Compiler besitzt. Von allen anderen Programmiersprachen, insbesondere 
Basic, kann ich nur abraten. Das ist was für Warmduscher. Und wenn Du 
dann irgendwann in ANSI-C fit bist und die ersten objektorientierten 
Programm in C++ schreibst, wirst Du feststellen, daß diese Möglichkeiten 
andere Programmiersprache überhaupt nicht hergeben.
Also mach keine falschen Fehler.

Markus

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da kann ich Markus nur zustimmen.

Basic ist so, wie mit Bauklötzern zu spielen. es geht schnell 
irgendwelche Standardsachen zu machen. Aber sobald ein Bauklotz nicht 
mehr paßt, stehst Du voll auf dem Schlauch.

Z.B. wenn Du ein LCD nicht mit 11 sondern nur mit 3 Drähten ansteuern 
willst.


Bei C nehme ich auch grundsätzlich nur die Standardbibliotheken (math.h, 
stdio.h, stdlib.h, string.h usw.).

Z.B. LCD, I2C, 1-Wire ist zu stark von dem konkreten Projekt abhängig 
(AVR-Typ, Pinbelegung, CPU-Takt), als das man dafür einigermaßen 
funktionssichere Bibliotheken hinkriegt.

Im eigenen Code kann man die Fehler wenigstens suchen und man weiß, 
welche Resourcen belegt werden (z.B. auch max / min 
Interruptlatenzzeit).


Peter

Autor: Joerg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nu ja, C ist keine für Anfänger besonders gut geeignete Sprache.
Die Syntax ist teilweise nicht ganz simpel zu verstehen.  Pascal
ist eher geeignet, ein Gefühl für eine (prozedurale, nicht
objektorientierte) Hochsprache zu erlangen.

BASIC zählt schlicht gar nicht als Hochsprache. :)

Objektorientierung auf einem Micro sollte man nur angehen, wenn
man wirklich ein gutes Verständnis für all die internen
Zusammenhänge hat.  Bis dahin sollte insbesondere für einen
Anfänger C++ tabu sein.  Man kann sich damit verdammt schnell
ins Knie schießen (besonders was den Ressourcenverbrauch
anbelangt).

Obwohl ich alles andere als ein Gegner von Hochsprachprogrammierung
für Microcontroller bin: ein grundlegendes Verständnis für
die Maschine und deren Assembler sollte man besitzen.  Das
muß nicht unbedingt so weit gehen, daß man selbst freihändig
ein Assemblerprogramm zusammenbekommt, aber man sollte sich
schon in der Anfangsphase häufiger mal ansehen, was der Compiler
so aus dem Programm tut.  Dazu bedarf es übrigens nicht
unbedingt eines Listings, avr-gcc ... -S übersetzt direkt
in den Assemblercode (Dateiendung .s).

Autor: Peter Zimmer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
Danke schon mal für eure ausfürlichen Antworten! Wie gesagt ich verstehe 
auch ein wenig Assembler. Mit C++ will ich ja auch gar nicht schaffen 
sondern mit dem normalen C. Mein Bruder hat mir ja gesagt das C++ 
praktisch nur ein paar mehr befehle und die anderen vieleicht ein 
kleinwenig verändert sind. Für weitere Tips wäre ich dankbar.
Peter

Autor: Jochen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oh, da hat Dein Bruder aber offensichtlich absolut keine Ahnung von 
C++...
Von der Komplexität her ist C++ einige Grössenordnungen von C entfernt, 
im Gegensatz zu C ist es da mit Syntay-Lernen nicht getan. C lernt man 
an einem Tag, wenn man das will, C++ lernt ein erfahrener Programmierer 
vielleicht in einem Jahr Vollzeit...

Autor: MiCHEL (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nimm vitamin C

:)

Autor: Peter Zimmer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
Wo lernt man den zumindesten halbwegs C in einem Tag oder Nacht? Habe 
noch kein gutes Touterial gesehen das wirklich von ganz Anfang an 
Anfängt. Werde mal schauen das ich das "Programmieren in C" ind er 
Bücherrei bekomme.
Hat sonst noch jemand einen guten vorschlag was Bücher oder 
internetseiten angeht?
DAnke schon mal für eure gute und schnelle Hilfe.
Peter
PS. Vitamin C nehme ich schon die ganze Zeit aber kann immer noch nicht 
C reichen den da nicht 10 hochdosierte Tabeletten:)

Autor: BAB (Kai K.) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hier das erste oben im link. ist wohl schlecht hin das beste
http://www.mikrocontroller.net/buecher.htm

dass man c an einem tag lernen kann halte ich für ein gerücht. da es 
auch viele abstrakte sachen gibt die man mit sicherheit auch an zwei 
oder drei tagen nicht lernen kann.
das meiste lernt man aus erfahrung. bücher zeigen meist nur die 
grundfunktionen. obwohl in dem oben ganannten buch auch tiefer in die 
materie eingangen wird.

gruss,
BAB

Autor: Jochen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hatte auch von einem erfahrenen Programmierer gesprochen.
Und C hat nunmal keinen hohen Abstraktionsgrad, so dass ein erfahrener 
Programmierer da auch auf nichts Neues stösst!
In C++ ist das hingegen völlig anders.

Autor: Peter Zimmer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
Kennt dann jemand ein gutes Internet Touturial?
Peter

Autor: Berndt Brandes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Peter,
versuchs mal hier.
http://www.mikrocontroller.net/articles/c/
Ich habs noch nicht gemacht, scheint aber bei vielen sehr beliebt zu 
sein.

Autor: Peter Zimmer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich habe mich jetzt entschieden mit C anzufangen. Und jetzt kommt schon 
meine erste Frage wie bekomme ich aus UltraEdit-32 ein file raus des ich 
mit Ponyprog brennen kann?
Peter

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.