Möchte C lernen, um es auf AVR, später mal auf Cortex anwenden zu können. Bisher programmiere ich AVR in Assembler. Könnt ihr mit ein C -LEHRBuch empfehlen, das auch die für µC benötigten C -Grundlagen anschaulich und (für Nicht-INGs) nachvollziehbar VERMITTELT? Also kein Nachschlagewerk für Profis, das der Anfänger nach 10 min in die Ecke wirft (oder gleich in den Müll)? Lieben Dank, Tom
Also ich kenne keines, das C speziell für µC behandelt. Deine beste Option scheint zu sein, C erst mal ganz normal auf einem PC zu lernen. Dazu gibt es haufenweise Literatur. Eine ist zb immmer noch der Klassiker von Kernighan&Ritchie. Speziell für die µC Seite (kleinere µC wie AVR die ohne Betriebssystem programmier werden) wirst du ca. das erste Drittel bis ca. die Hälfte dieser Bücher benötigen. Die allerdings intensiv. Die Teile, die erst mal für die µC programmierung nicht so relevant sind, wie zb arbeiten mit Files oder dynamische Speicherverwaltung, können trotzdem irgendwann mal relevant werden. Zb dann, wenn man sich auf dem PC Hilfsprogramme baut, die einem zb Tabellen generieren die dann am µC weiterverwendet werden. Der Clou ist ja, dass die Grundprinzipien von C immer dieselben sind. Vom µC bis hinauf zum Supercomputer ist es immer dieselbe Sprache. Die Details mögen in manchen Fällen unterschiedlich sein und manche Dinge benötigt man auf einem AVR öfter als auf einem Desktop-PC (zb Bitbehandlung), aber diese Dinge passen auf 1 oder 2 Seiten Papier und die hat man schnell gelernt, wenn das C Grundwissen erst mal da ist. Die Hardware-spezifischen Besonderheiten sind davon sowieso ausgenommen. Aber die sind ja in C auch nicht anders als in Assembler. Eine UART wird in C auch nicht anders konfiguriert als in Assembler - dieselben Register, dieselben Bits, dieselbe Bedeutung - nur eine etwas andere Schreibweise. Dazu kommt, dass man auf einem PC wesentlich bessere Debug-Möglichkeiten hat, gerade in der Lernphase. Denn auf einem PC hast du erst mal eine funktionierende Infrastruktur. Ausgaben auf die Konsole laufen auf dem PC aus dem Stand heraus, während man sich auf einem AVR all diese Dinge erst mal selber machen muss, wozu man aber eigentlich schon ein bischen C können sollte. Ein Teufelskreis. Daher immer wieder die Emfpehlung: vergiss erst mal das Erlernen von C auf einem kleinen µC. Nimm ein normales C-Buch, welches für den PC geschrieben wurde, verdien dir damit deine ersten Sporen auf dem PC, lerne dort die Grundlagen und wenn du ungefähr bei Files angelangt bist, mach den Schritt auf den AVR. Mit ein paar auf dem PC eher stiefmütterlich behandelten Theme n, wie zb Bitoperationen, noch nachgereicht, wirst du dich auf dem µC sofort zu Hause fühlen.
Vielen Dank Karl Heinz für deine ausführliche Antwort. Gibt es einen Unterschied zw. der gebundenen und der Taschenbuchausgabe beim K&R? Letzte Auflage ist die zweite von 1990? Tom
UI. Das kann ich dir nicht beantworten. Geben die Kommentare bei Amazon
keine Auskunft darüber?
Ich hab die Tage eine Eastern-Economy-Edition für meinen Neffen gekauft.
Hat 14 Euro und ein paar Zerquetschte gekostet und war in ein paar Tagen
aus Indien da. Inhaltlich ist sie Wort für Wort identisch mit dem
amerikanischen Original, so dass ich davon ausgehe, dass die von dir
genannten Editionen sich auch nur in der Verarbeitung unterscheiden.
> Letzte Auflage ist die zweite von 1990?
Ja, die ANSI-Version.
:
Bearbeitet durch User
Ein oft unterschlagener Vorteil von "normalem" C, ist der der einfachen Testumgebung. Ein Windoof- oder Pinguin-C läuft ja per Definition auf dem ursprünglichen PC. Da kannst Du dann, im wahrsten Sinne, Deine Trockenübungen machen, ohne Dich mit dem - Welchen µP für welche Anwendung? - herumzuschlagen. Noch was: Im Grunde gibt es keinen Unterschied zwischen dem C welches für normale Rechneranwendungen geschrieben wird und dem für die kleinen Käfer. Ein etwas intensiveres Verständnis wird lediglich im Bereich der booleschen Algebra und rund um die Datentypen selber benötigt. Aber schon dadurch, dass Du nichts wirklich Neues brauchst, läuft das Meiste auch auf einem normalen PC.
Für die µC typischen Aspekte gibt es ja das hiesige GCC Tutorium. Das hab ich schon mal aus Interesse durchgelesen, nur fehlen mir die C Grundlagen. Ist nicht so wild, wenn die Innereien des Käfers schon geläufig sind. Hab nur Schiss, dass die Bücher nur trockenen Stoff rüberklatschen und der Autor sich und dem Rest der Welt beweisen will, was für ein Genie er ist. Tom
Im Normalfall reicht etwas wie das gute, alte K&R C-Buch. Auch im Internet haben sich einige Autoren verewigt. Warum nicht, wenn Du mit deren Stil klarkommst. Über eins musst Du dir aber im Klaren sein: Dein letzter Krimi war spannender. Lehrbücher, rund ums C sind Prinzipbedingt ungefähr so spannend wie das Hamburger Telefonbuch.
Ich kann dir "Head First C" nur ans Herz legen. Auf ca. 600 Seiten wird alles was man braucht in einer lustigen Art und Weise erklärt, so dass das lesen auch Spaß macht.
TomToll schrieb: > Hab nur Schiss, dass die Bücher nur trockenen Stoff rüberklatschen und > der Autor sich und dem Rest der Welt beweisen will, was für ein Genie er > ist. Geh in eine Buchhandlung und schmökere mal ein bischen ob du mit dem Stil klarkommst.
Am Bildschirm zu lernen geht leider nicht, die Konzentration bricht nach paar Minuten ab, das Bildschirmlesen ist mir zu mühsam. Wenns wenigstens halb so spannend wie mein letzter "Mankell" wäre, würde ich in zwei Abenden mit dem C-Buch fertig sein ;-)
hello world schrieb: > Ich kann dir "Head First C" nur ans Herz legen. Auf ca. 600 Seiten wird > alles was man braucht in einer lustigen Art und Weise erklärt, so dass > das lesen auch Spaß macht. Hab mir das eben mal gezogen. Werde morgen mal reinlesen.
Ich fand von O'Reilly - Practical C Programming ganz gut... bzw. für später dann die kleinen Bücher "C - kurz & gut"... Als Tipp, besuche eine (FH) Bibliothek und schaue dort im Fachbereich Elektrotechnik/Informatik vorbei, da sollte massig Literatur vorrätig sein...
Oder hier http://www.c-howto.de Diese Anleitung fängt wirklich ganz bei Null an und Du kannst alles erst einmal online lesen, bevor du die gedruckte Ausgabe kaufst.
TomToll schrieb: > Wenns wenigstens halb so spannend wie mein letzter "Mankell" wäre, würde > ich in zwei Abenden mit dem C-Buch fertig sein ;-) Du wirst lachen, aber genau so ging es mir: Ich hatte die vielgescholtene deutsche Übersetzung der ersten Auflage¹ des K&R. Dennoch fand ich das Buch dermaßen fesselnd, dass ich mich abends trotz Müdigkeit kaum davon losreißen konnte, so wie das auch bei einem guten Krimi der Fall ist. So hatte ich dann auch tatsächlich nach zwei (langen) Abenden das ca. 200-seitige Buch durch. Natürlich konnte ich danach noch nicht wirklich in C programmieren. Ich wusste aber, was in C alles geht und wo ich nachschlagen musste, um zu erfahren, wie genau die einzelnen Konstrukte umzusetzen sind. Zu mehr Routine gelangte ich dann nach und nach per Learning-by-Doing auf meinem Amiga 2000 und verschiedenen Rechnern an der Uni. Zu den Mikrocontrollern kam ich erst Jahre später. Da ich C inzwischen sehr gut beherrschte, konnte ich mich voll auf die spezifischen Aspekte der µC-Programmierung konzentrieren, so dass sich hier bereits nach einem Tag die ersten Erfolge einstellten. ———————————— ¹) Die zweite (und letzte) Auflage ist diesbezüglich viel besser.
:
Bearbeitet durch Moderator
Ich fand dieses Buch für mich sehr hilfreich für dein Einstieg in die µC Programmierung. Ich hatte aber schon Vorkenstnisse in C am PC. http://www.amazon.de/gp/product/3486589881/ Es wird viel auf die Hardware und die Schnittstellen eingegangen, eher weniger auf C ansich.
Ich habs im Studium hiermit erlernt: http://www.amazon.de/programmieren-Ein-Kurs-Selbststudium-Musterl%C3%B6sungen/dp/3893193723/ref=sr_1_1?ie=UTF8&qid=1391750401&sr=8-1&keywords=3893193723 (bei dem Preis für ein gebrauchtes Exemplar wirst wohl nichts falsch machen) Den K&R finde ich persönlich als Nachschlagewerk nicht schlecht, zum Lernen eher nicht so. Hab o.g. Buch immer noch hier in der Firma stehen.
Yalu X. schrieb: > Ich hatte die vielgescholtene deutsche Übersetzung der ersten Auflage¹ > des K&R. Ich hab' sie auch noch. Steht direkt neben der zweiten Ausgabe (Ausgabe, nicht Auflage). Der Eindruck, daß dieses Buch mit einem Übersetzungsautomat entstanden ist, den werden die heutigen Apologeten des Deppenleerzeichens gar nicht mehr nachvollziehen können ... Die zweite Ausgabe von 1990 ist immer noch die aktuellste; und deren deutsche Übersetzung ist hervorragend. Das ist ein Fachbuch, das man tatsächlich nicht im englischen Original lesen muss. Schön wäre es, wenn es davon eine qualitativ gleichwertige dritte Ausgabe gäbe, die C99 oder C11 beschreibt ...
Hallo, Arne ist der Meinung: "Den K&R finde ich persönlich als Nachschlagewerk nicht schlecht, zum Lernen eher nicht so." Das ist noch sehr zurückhaltend ausgedrückt. Als "echter" Programmieranfänger der noch nie programmiert hat (den Sat Receiver einstellen ist kein programmieren) ist K&R als Lehrbuch nicht zu empfehlen (Als Nachschlagewerk für später wenn die ersten Hürden überwunden sind ist es allerdings eine feine Unterstützung - nur der Preis stimmt nicht. Mir hatte als nahezu unerfahrenen Programmieranfänger das Buch "C für Dummies" von Dan Gookin sehr geholfen - sehr gut verständlich und auch einigermaßen aktuell was das Drumherum angeht (zum C Lernen gehört ja auch das entspechende Programmierumgebung und reine Textausgaben sind in Zeiten von Windows auch nicht jeden Anwender bekannt). Außerdem ist der Preis angemessen. Als Ergänzung kann eventuell "C als erste Programmiersprache Vom Einsteiger zum Profi" von Dausmann, Böckel und Goll dienen auch wenn mann leider an der Lehrmethode merkt das alle drei Autoren Professor Dr. Titel innehaben und die Zielgruppe (auch) Studierende sind, also alles wissenschaftlich sehr korrekt und daher nicht besonders Anfängerfreundlich für "echte" Laien. Preislich leider auch auf typischen Fachbuchniveau für Bücher mit relativ geringer Auflage. Und als weitere Ergänzung : In den weiten von Youtube nach C-Tutorials suchen - da gibt es einige sehr gute und ein Bild (Video) sagt immer mehr als tausend Worte auch wenn natürlich meist nicht so Detailreich wie es Bücher darstellen. mfg Bastler
TomToll schrieb: > Könnt ihr mit ein C -LEHRBuch empfehlen, das auch die für µC benötigten > C -Grundlagen anschaulich und (für Nicht-INGs) nachvollziehbar > VERMITTELT? Hier gab es kürzlich eine Diskussion darüber, ob viele C-Bücher so schlecht sind wie von jemandem behauptet. Beitrag "Sind alle C-Bücher wirklich so schlecht?" http://www.amazon.de/gp/cdp/member-reviews/A2P0DS0HZIAYM2/ref=cm_aya_bb_rev Vielleicht als Negativliste zu gebrauchen...
Hallo Tom, eigentlich wollte ich hier "nur lesen", da ich genau wie du, "C" lernen will. Auch ich habe erst das Programmieren in Maschinensprache, Assembler und auch Basic für mehrere Mikroprozessoren und Controller gelernt und möchte nun auch "C" besser verstehen. Trotzdem erlaube ich mir hier auch einen Vorschlag zu machen, will aber im voraus auch bemerken, dass das was ich vorschlagen würde, sich eben speziell auf die "Programmierung in C" von Mikrokontrollern der ATmega-Serie bezieht. Es handelt sich um ein Buch mit Namen "Einführung in die C-Programmierung" (Sven Feldkord) mit dem ATmega32 (19,95 Eu.) Aus meiner Sicht, speziell für umsteiger. Ich habe alle meine Programmierpraxis grundsätzlich dadurch erworben, dass ich "vorhandene Software" analysiert und geändert habe.. Angefangen von DOS-Programmen für den UR-PC bis zu den komplexen Mikrocontrollern (Siemens 80C537) in Assembler und Basic. Habe vor -mehr als 10 Jahren- versucht, "C" zu lernen indem ich ein Visual-C suf dem PC installiert hatte, leider gelang es mir nicht zu verstehen, warum bei der Compilierung nur "Fehlermelungen" generiert wurden, dann habe ich es aufgegeben.. Zugegeben, zu der Zeit musste ich noch schaffen, heute bin ich Rentner und hoffe dass es besser klappen wird.. Noch (vielleicht) ein Vorschlag: Ich bin Über "ARDUINO" Wieder auf das Thema "C" gestossen und war veblüfft davon, dass es einfach klappte.... Arduino beruht auch auf C... Als Assemblerprogrammierer muss man sich das "so" vorstellen, es gibt viele "Unterprogramme- in C Funktionen" die man einfach aufrufen kann und es wird ein Bit gesetzt, eine serielle Ausgabe auf dem PC initialiesiert und so weiter.. Arduino ist, wenn ich das so richtig schätze, ein "über C" aufgesetztes Konzept, das es einem "nicht Programmierer" erlaubt einen AVR-Controller zu programmieren... Wolfgang
Also ich habe das Programmeieren in C mit dem Buch 'C von A bis Z' von Jürgen Wolf (Gallileo Computing), das auf den ca 1000 Seiten die Sprache gut erklärt und auch in Späteren Kapiteln auf grundlegende Algorithmen und Nezwerkprogrammierung erklärt. Einzig vernachlässigt wird die programmierung von GUI's, aber das hat mich nicht gestört. Gibt's übrigens auch als Openbook bei GallileoComputing zum Download. 12V PS: Jürgen Wolfs andere Bücher sind auch sehr zu empfehlen!!! Sonst ist auch Gallileo Computing sehr zu empfehlen, da es sehr gute Bücher über alles im Sortiment hat, die generell mit Computern zu tun haben.
Der Typ ist cool. Leidenschaftliche Rezessionen. http://www.amazon.de/gp/cdp/member-reviews/A2P0DS0HZIAYM2?ie=UTF8&display=public&page=1&sort_by=MostRecentReview
Ich hab jetzt mal nur so über die Rezessionen drüber gelesen und sie sind in der Tat sehr "leidenschaftlich" geschrieben, aber größtenteils hat er recht. Die Autoren sind oft nicht einmal in der Lage C und C++ auseinander zu halten. C habe ich sogar mit dem berühmten "C: von Anfang an" von Helmut Erlenkötter gelernt. Zurecht gekommen mit dem Buch bin eigentlich nur, weil das nicht meine erste Programmiersprache war (C#), die Beispiele nicht alle abgetippt und die Warnungen (z.B. bei "main()") nicht ignoriert habe. Neben den falschen Beispielen, gibt es zudem auch massig Logikfehler. Fazit: für wirkliche Anfänger nicht zu empfehlen. Ich kenne allerdings auch keine Alternative. Die deutschen Bücher sind anscheinend alle so schlecht, außer die letzte Ausgabe von "Programmieren in C", was allerdings kein Einsteigerbuch ist. Die englischen Bücher sollen wesentlich besser sein.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.