Hallo Leute, Nun hab ich mich entschlossen für meine Uc's C zu lernen da die Programme größer und unübersichtlicher werden... jetzt meine Frage muss ich wie es in den Tutorials steht C Standart komplett lernen oder nur die Wichtigsten Grundfunktionen..... welches Tutorial wäre denn am besten geeignet damit ich mit GCC anfangen könnte. Mfg Bqube
Kauf Dir ein C-Buch, wie z.B. den K&R in der zweiten Ausgabe. Vergiss "Tutorials".
Wenn du einen schnellen Einstieg willst, schau mal "C von A bis Z" vom Galileo Verlag - gibt's auch gratis und legal online. Wie ich finde, ein sehr anwendungsorientiertes Buch. Falls du Student bist und Zugang zu SpringerLink hast (oder jemanden kennst) gibt's von Selberherr "Programmieren in C" gratis im SpringerLink. Im Gegensatz zur sonstigen Springer-Literatur ist das Buch durchaus auch ausserhalb der Uni zu gebrauchen. Du lernst hier C sehr genau, wenn du willst auf Experten-Niveau, aber es ist kein Crash-Kurs. Diese Bücher sind allerdings nicht Mikrocontroller-spezifisch, das bedeutet, du lernst ganz normal und allgemein ANSI-C programmieren am PC in der Konsole (Textmode). Das würde ich dir aber auch empfehlen, denn oft sind in den "C für AVR/PIC/..."-Stil-Bücher nur die notwendigsten Dinge oder und wenn du es am PC lernst, weisst du was ANSI-kompatibel ist und was nicht (also, z.b. dass es den sbit-Datentyp nicht in jedem Compiler gibt, obwohl Keil und MikroC ihn anbieten)
Pierre Gnauck schrieb: > oder nur die Wichtigsten Grundfunktionen..... Na klar, das reicht völlig:
1 | int main(void) |
2 | {
|
3 | while(1) |
4 | {
|
5 | printf("Ich kann jetzt C\n"); |
6 | }
|
7 | }
|
Wird aber schnell langweilig. Was glaubst du eigentlich? Natürlich alles. mfg.
Mir geht es nur darum das ich nicht alles über C lerne und am ende davon nur die Hälfte für meine Uc's brauche... zur Zeit bin ich mit diesem Tutorial beschäftigt http://www.tutorials.at/c/compiler-installieren.html klar sind Tutorials nicht immer das Beste aber nen Anfang.. Mfg Bqube
Pierre Gnauck schrieb: > Mir geht es nur darum das ich nicht alles über C lerne und am ende davon > nur die Hälfte für meine Uc's brauche... Das meiste wirst du davon brauchen.
Du kannst für den Anfang die dynamische Speicherverwaltung weglassen. Zumindest für 8 Bitter. Und am besten auch floating point.
Pierre Gnauck schrieb: > Mir geht es nur darum das ich nicht alles über C lerne und am ende davon > nur die Hälfte für meine Uc's brauche... Das Forum ist voll mit Fragen von Leuten, die das auch glauben und ganz schnell mit irgendeinem Pillepallekram nicht weiterkommen. Was willst du hören? Lern dies, lern das, lass das weg und das brauchst du auch nicht? OK. Dynamische Speicherverwaltung kannst du wirklich weglassen. mfg.
Nene was ich lernen will wollt ich ja garnicht Wissen nur ob es nötig wär aber das hat sich nun alles geklärt .... also weiter mit c und wenn das sitzt dann zu GCC ... Mfg Bqube
Pierre Gnauck schrieb: > also weiter mit c und wenn > das sitzt dann zu GCC ... c ist die Sprache gcc ist ein Compiler unter vielen.
Wer so eine Frage stellt, hat noch nicht verstanden, dass programmieren nichts mit dem Erlernen einer Programmiersprache zu tun hat. Diese Erkentniss wird aber noch kommen ;-) ANSI-C hat gerade mal 32 Schlüsselwörter, deren Bedeutung kann jeder an einem Nachmittag lernen. Kann derjenige danach C programmieren? Wohl kaum. Eine Programmiersprache ich wie der Hammer für einen Zimmermann. Kannst du ein Haus bauen wenn ich dir einen Hammer gebe? gruß cyblord
Also ich habe C damls hiermit http://home.arcor.de/rp.nerlich/images/lit/book-kernighan-ritchie.jpg gelernt. Das ist der Klassiker, gibts auch in neuer bei amazon.
cyblord ---- schrieb: > Kannst > du ein Haus bauen wenn ich dir einen Hammer gebe? Ne, aber ein Haus damit abbrechen :=)
So nun hab ih mir von Pearson C Programmierung für knapp 10€ gekauft ... ich hab mich für das Buch entschieden weil ich finde das es sich am besten liest ... die anderen Bücher waren mir einfach zu trocken geschrieben.. Mfg Bqube
Beim Mikrocontroller läuft in C aber einiges etwas anders ab, als beim PC-Programm. Daher finde ich die üblichen Bücher und (Uni-)Skripte nur bedingt brauchbar. Es gibt die Bücher "Mikrorechner mit Mikrocontrollern der XXX-Familie". Da sind dann auch Mikrocontroller-Taugliche Beispiele drin. Für die 8051 gibt es zum Beispiel von Hitex ein knapp 100-Seitiges Dokument "C51 Primer". Das beschreibt nur Unterschiede bei der Programmierung in C auf einem Mikrocontroller... Meinen Technikern gebe ich eine C-Kurzeinführung für den Controller mit (12 Seiten, dazu einige Beispielprogramme zum ausprobieren), für Grundlagen der Syntax gibt es von der FH Regensburg ein recht schönes Skript von Prof. Jobst, von dem die ersten paar Kapitel so allgemein sind, dass man sie auch für den uC nutzen kann. Ansonsten findet man allgemeine C-Einführungen an allen Ecken und Enden, so auch bei Wikibooks: http://de.wikibooks.org/wiki/C-Programmierung
Ich selber programmiere nur gelegentlich und wenn, dann nur C oder C#. Für C verwende ich allerdings nur ein Buch, den Rest lese ich mir im Internet an. Da ich nur gelegentlich programmiere reicht mir meist dieses Nachschlagewerk: http://www.amazon.de/C-Programmieren-Anfang-Helmut-Erlenk%C3%B6tter/dp/3499600749/ref=sr_1_1?ie=UTF8&qid=1348170881&sr=8-1 Ich mag diese kompakten Bücher und wenn ich nur die ASCII Tabelle nachschaue ;), dieses Buch hat sich bei mir bewährt.
Die Fragestellung kann ich irgendwie nachvollziehen. Mein Problem ist auch nicht der Umgang mit der Programmiersprache, sondern die Algorithmik. Selbst wenn ich genau weiß, was die Sprache leistet, kenne ich noch lange nicht die notwendigen Algorithmen zur Lösung bestimmter Probleme. Und dass wird in KEINEM mir bekannten Buch über C oder eine andere Programmiersprache ausreichend erklärt. Ob es von Herrn Erlenkötter geschrieben ist oder von K&S. Das Lernen der Sprache ist nicht schwer, sondern das Finden und Nachvollziehen von Lösungsansätzen, was in jeder Programmiersprache fast immer gleich oder zumindest ähnlich abläuft. Z.B. die logische Zerlegung aller Aufgaben des Programms in nicht weiter zerlegbare Einheiten ist, finde ich, eine echte Herausforderung, welche das Programmieren ausmacht. Insbesondere die "Narrensicherheit" und Fehlerbehandlung kommen in fast allen Büchern zu kurz. Da habe auch ich noch arge Probleme. Ich kann zwar C-Programme nach gegebenem Struktogramm mit vorgegebenen Algorithmen schreiben, ohne großartige Fehler zu machen, aber das Nachvollziehen oder das selbständige Entwickeln fällt mir sehr schwer.
Naja, erinnerst Du Dich noch an die Grundschule? Ich hoffe Du hast sie besucht? Wie war das da mit dem Lesen und Schreiben? Haben eine handvoll Buchstaben gereicht, oder hat es erst mit allen Buchstaben gut funktioniert? Und mit dem Rechnen? War der Zahlenraum bis 10 und "Plus" und "Minus" ausreichend? Oder braucht man mehr um irgendetwas sinnvolles zu rechnen?
> aber das Nachvollziehen oder das > selbständige Entwickeln fällt mir sehr schwer. Ist reine Übungssache. So wie eine Fremdsprache. Vokabeln pauken und Grammatik auswendig lernen reicht nicht. Am besten mal einige Monate sich im Fremdsprachen-Land aufhalten, das bringt sehr viel. Mit der Übung kommt die Erfahrung. Mit der Erfahrung die Erkenntnis. Das dauert halt.
Meisenmann schrieb: > Die Fragestellung kann ich irgendwie nachvollziehen. Mein Problem ist > auch nicht der Umgang mit der Programmiersprache, sondern die > Algorithmik. Selbst wenn ich genau weiß, was die Sprache leistet, kenne > ich noch lange nicht die notwendigen Algorithmen zur Lösung bestimmter > Probleme. Und dass wird in KEINEM mir bekannten Buch über C oder eine > andere Programmiersprache ausreichend erklärt. Es gibt Bücher (und ganze Vorlesungsreihen(!) ) die sich allein mit Algorithmen beschäftigen. Das ist völlig unabhängig von der Sprache. Grundsätzlich kann jede Turing-Vollständige Programmiersprache jeden Algorithmus ablaufen. > Z.B. die logische Zerlegung aller Aufgaben des Programms in > nicht weiter zerlegbare Einheiten ist, finde ich, eine echte > Herausforderung, welche das Programmieren ausmacht. Genau, hier liegt die eigentliche Kunst. Und da kommt man mit keinem C-Buch hin. Da muss man a.) ein Händchen für haben und braucht b.) viel Erfahrung. gruß cyblord
cyblord ---- schrieb: > Es gibt Bücher (und ganze Vorlesungsreihen(!) ) die sich allein mit > Algorithmen beschäftigen. Ich mich in gerne intensiver und konkreter mit dieser Thematik befassen. hast Du gute Erfahrungen mit irgendeinem Buch gemacht? Diese Art Fachbücher ist leider nicht gerade billig und ich möchte mir den Griff ins Klo gerne ersparen.
Ich kann dir das Buch C von A bis Z ebenfalls empfehlen. Ist sogar als OpenBook verfügbar. Einfach bei Google suchen. Mir hat es super geholfen. Viele Grüße
Meisenmann schrieb: > cyblord ---- schrieb: >> Es gibt Bücher (und ganze Vorlesungsreihen(!) ) die sich allein mit >> Algorithmen beschäftigen. > > Ich mich in gerne intensiver und konkreter mit dieser Thematik befassen. > hast Du gute Erfahrungen mit irgendeinem Buch gemacht? Diese Art > Fachbücher ist leider nicht gerade billig und ich möchte mir den Griff > ins Klo gerne ersparen. Gibts bei dir in der nähe keine Uni? In der Regel kann jeder einen UB Ausweis bekommen und von dort Bücher ausleihen. Kaufen würde ich mir da erstmal keins. Und dann schauchst mal was die an Algo Büchern da haben. gruß cyblord
Irgendeiner schrieb: > Ist reine Übungssache. So wie eine Fremdsprache. Vokabeln pauken und > Grammatik auswendig lernen reicht nicht. Am besten mal einige Monate > sich im Fremdsprachen-Land aufhalten, das bringt sehr viel. > > Mit der Übung kommt die Erfahrung. Mit der Erfahrung die Erkenntnis. Das > dauert halt. Da gebe ich dir vollkommen Recht. Ich habe Programmieren nie auf eine systematische Weise, sondern durch anfangs abkupfern und anschliessendes modifizieren von Code aus Beispielen gelernt. Solches Learning-by-doing geht aber nur, wenn man ein enormes Interesse aufbringt. Und man braucht viel Übung, nicht paar Tage sondern Jahre um es wirklich zu können. Bernhard Spitzer schrieb: > Beim Mikrocontroller läuft in C aber einiges etwas anders ab, als beim > PC-Programm. Daher finde ich die üblichen Bücher und (Uni-)Skripte nur > bedingt brauchbar. Es gibt die Bücher "Mikrorechner mit Mikrocontrollern > der XXX-Familie". Da sind dann auch Mikrocontroller-Taugliche Beispiele > drin. Ja, aber da besteht die Gefahr, dass man z.b. Pointer nicht komplett versteht, oder dass man strukturierte Programmierung nicht lernt. Ich habe zuerst normales C am PC gelernt, und die Umstellung auf Mikrocontroller dauerte genau 10 Minuten (OK, ich hatte davor schon Mikrocontroller in ASM programmiert) Auch wenn manche sagen, malloc/calloc braucht man nicht. Das stimmt zwar heute garantiert, aber was, wenn in einigen Jahren ARM9/11-artige MCUs mit viel RAM der Standard werden und so wie der Cortex-M3 auch im 44-Pin-TQFP verfügbar und leicht anzuwenden sind?
Hi, na wie immer sind wir hier ja mal wieder sehr freundlich... Ein Buch zu dem Thema ist eine gute Grundlage und gehört dazu. Eine Möglichkeit ist es das Zielorientiert zu machen. Du kannst das zwar alles auswendig lernen, aber damit umzugehen lernt man dann gerade am uC eher mit der Praxis. Ich würde mir Ziele setzen: LED blinken lassen LED nur blinken lassen wenn Schalter geschlossen wären die ersten beiden Aufgaben. Dann bist du bei den Kontrollstrukturen: while und if und den Bit- und Vergleichsoperatoren Zudem lerst du parallel etwas zur Praxis (Verkabelung/Stromversorgung etc..), zur Programmierumgebung, zum Compiler, zur Installation und Zusammenspiel dieser, zum Programmer und dem ganzen drum rum. Anschließend höhere Ziele stellen und mit dem c-Buch, diesem Forum, Tutorials und google weiter ausbauen. Je nach Programmierstiel kristallisieren sich dann bevorzugte Vorgehensweisen heraus. Das kann sehr unterschiedlich ausfallen und ist nicht mit JA oder NEIN zu beantworten. Gruß, Hannes
Ich würde erst einmal die Grundlagen lernen und dann bei Bedarf das, was man braucht. Mir hat dieser Video-Kurs geholfen: http://et-tutorials.de/mikrocontroller/
Hallo Pierre, sieh Dir mal et-tutorials.de an, das fand ich für den Anfang am besten. Gruß Wilials
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.