Hallo, möchte gerne selber Mikrocontroller programmieren in C. Ist es besser wenn ich rein C lerne und dann auf Mikrocontroller übergehe? Oder sollte ich mir gleich ein Buch über C in verbindung mit Mikrocontroller kaufen? Wenn man C beherscht kann man dann automatisch auch Mikrocontroller programmieren oder ist da noch ein kleiner unterschied? Danke mfg Dominik
:
Verschoben durch User
Ich sag mal, wenn man das Handwerkzeug (sprich: die Programmiersprache) beherrscht, stochert man bei den mikrocontrollerspezifischen Sachen nicht so im Nebel. Zumal man auf Mikrocontrollern auch nicht so gut debuggen kann (mal eben im Einzelschritt durcchgehen ist da nicht). Mein Tip: Besorg dir ein C-Buch (allgemein), lad dir Visual C++ 2010 Express runter, ist kostenlos und du bekommst eine IDE und einen durchaus brauchbaren Debugger, und spiel erstmal mit der Sprache an sich rum.
Dominik W. schrieb: > Ist es besser wenn ich rein C lerne und dann auf Mikrocontroller > übergehe? ja, wesentlich besser. Grund: 1. In C alleine kann man viel falsch machen, bei MCs ebenfalls. Wenn man an allen Fronten gleichzeitig kämpfen will, tut man sich keinen Gefallen. 2. Die Fehlersuche ist auf PCs drastisch einfacher. Dominik W. schrieb: > Wenn man C beherscht kann man dann automatisch auch Mikrocontroller > programmieren oder ist da noch ein kleiner unterschied? Es gibt schon Unterschiede. Die sind allerdings deutlich kleiner, wenn man sich beim C-Lernen darum kümmert STANDARD zu lernen und nicht ein spezielles C. Insbesondere die MS-Doku drängt einen nicht dazu, sich an ANSI-C zu halten (vorsichtig ausgedrückt); dann ist der Umstieg schwerer.
LKW fahren (C programmieren) kann man kann ganz gewöhnlich auf einer Straße (PC) oder im Chaos einer Großbaustelle (Mikrocontroller). Kaum ein LKW-Fahrer wird seinen Führerschein auf der Großbaustelle machen, obwohl die Bedienung des Gefährts in beiden Fällen die gleiche ist :)
Junge, Junge große Worte gelassen ausgesprochen. Ihr hättet Dominik sagen sollen das er auf diesem Weg vielleicht zu Weihnachten mit Controllern anfangen kann. Was zum Teufel soll das debuggen bei Visual C mit der Controllerwelt zu tun haben? Bits setzen und löschen, Inputs abfragen und Interrupts kommen da ja wohl selten vor... Leider hat Dominik nicht geschrieben welche Controller er programmieren möchte. Ich kenne nur die AVR und 8051 Umgebungen, kein PIC. Viel wichtiger beim Einstieg in C ist die Compilerauswahl. Die Kommerziellen sind da viel einfacher zu erlernen als z.B. gcc. Die kostenlosen Testversionen gehen meistens bis 2 oder sogar 4 KB Code, das reicht für den Anfang. Danach kann man immer noch auf gcc umsteigen, wenn man kein Geld aisgeben möchte. Der Code Wizard, den Codevision und auch IAR anbieten ist für Einsteiger eigentlich nicht mit Gold aufzuwiegen ;-) Mein Tipp: lese hier mal das avr gcc Tutorial, schaue Dir die Testversionen der genannten Compiler an (wenn Du an AVR Controllern interessiert bist) und befasse Dich mit den einschlägigen Büchern der Zielarchitektur. Danach Try + Error, und nie die Geduld verleren, das schafft man auf keinem genannten Weg in ein paar Wochenenden. Viel Glück, Mike
Also hab ich das jetzt richtig verstanden? Ich sollte doch C gleich Praxisbezogen auf Mikrocontroller lernen. Tut mir leid hab ich vergessen zu erwähnen das ich avr Mikrocontroller von atmel mit C programmieren möchte. Unter Complierauswahl meinst du die Software die mir mein Programm für meinen Mikrocontroller übersetzt, oder? Kannst du mir vielleicht noch kurz den Unterschied zu gcc erklären? Danke
Dominik, hast Du die Artikel hier auf der Seite mal durchgesehen? http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial http://www.mikrocontroller.net/articles/AVR-GCC Codevision und IAR Compiler haben eine komplette Editorumgebung gleich mit dabei, und vieles integriert, was beim gcc erst noch zusammengesucht und integriert werden muss. (z.B. serielle Schnittstelle, LCD ansteuerung und vieles mehr. Ach ja, hatte ich noch vergessen, Codevision und IAR laufen nur unter Windows... Du findest die Testversionen unter www.iar.com bzw. www.hpinfotech.ro Anschauen und ausprobieren lohnt sich. Danach kannst Du Dich immer noch für gcc entscheiden. Wenn Du schon ein bischen programmiert hast, fällt das auch leichter. Grüße, Mike
@Mike Du vergisst, dass er noch gar kein C kann! Das Tutorial ist nicht hilfreich, weil es schon C-Kentnisse voraussetzt. Und von "Weihnachten" kann keine Rede sein. Seine ersten Schritte in C auf einem PC zu machen, ist vor allen Dingen deshalb vorteilhaft, weil er rund die Hälfte eines normalen C-Lehrbuches damit erst mal ohne Probleme auf dem PC bewältigen kann. Dort funktioniert ein printf erst mal aus dem Stand und er kann sich Zwischenergebnisse ausgeben lassen und muss nicht, wie auf dem µC erst mal Ratestunde spielen, was denn nun ein i++ wirklich macht und wo der Unterschied zu einem ++i liegt. Er kann sich das mit einem printf ganz leicht ganz einfach ausgeben lassen. Darum geht es. Kein Mensch sagt, dass er auf dem PC auch durch Filehandling und dynamisches Memory-Handling durch muss. Dann wären wir wirklich bei Allerheiligen. Die erste Hälfte eines C-Buches hat er auf einem PC in ein paar Wochen durch, wenn er einigermassen fleissig ist. Auf dem µC braucht er durch die erst mal eingeschränkte Peripherie Monate und viele Nachfragen im Forum dazu, bis er für sich selber die Techniken entwickelt hat, wie man einem Programm entlockt, was es denn wirklich macht und wo der Unterschied zu dem liegt, was man eigentlich machen wollte.
Mike schrieb: > hast Du die Artikel hier auf der Seite mal durchgesehen? Bevor man damit anfängt sollte man grundlegende KEntnisse von C haben. z.b. Wie man eine Variable definiert, was sind pointer, wie sehen Funktionen aus. Schon mal überlegt, dass der TE davon noch überhautp nichts wissen könnte? Beim PC-Programmieren bekommt man zudem noch Erfahrung in C. Man macht weniger Leichtsinnfehler. Mike schrieb: > Codevision und IAR Compiler haben eine komplette Editorumgebung gleich > mit dabei, und vieles integriert, was beim gcc erst noch zusammengesucht > und integriert werden muss. Ich wüsste nicht was an WinAvr + DevC++ + Standardmakefile runterladen so schwer wäre. PS: Die Syntaxkenntnis und ein bisschen Programmierehrfahrung reicht im Prinzip. Als ich angefangen habe konnte ich c# und halbwegs c++ programmieren.
Visual Studio würde ich zum Einstieg in C jetzt auch nicht gerade nehmen, das ist dafür ein bisschen überladen und man wir vielleicht auch schnell auf die Idee kommen irgendwelchen .NET-Kram zu programmieren. Dann lieber Codeblocks+GCC oder etwas ähnlich schlankes. Und man sollte wirklich mit C einsteigen und nicht C++. Manche Dinge wie Bitoperationen muss man sich dann vielleicht genauer anschauen als es für PC-Programme nötig wäre. Dann klappt das schon. Parallel kann man sich ja trotzdem schon einmal in die Grundzüge eines Mikrocontrollers einarbeiten.
Karl Heinz Buchegger schrieb: > Die erste Hälfte eines C-Buches hat er auf > einem PC in ein paar Wochen durch, wenn er einigermassen fleissig ist. ja, aber bis man das wirklich drauf hat und Lösungen für neue Probleme erarbeiten kann brauchts sehr viel Übung und Wissen. das beste ist, sich immer kleine Probleme zu suchen und diese zu lösen. Tip: http://projecteuler.net
Samuel K. schrieb: > PS: Die Syntaxkenntnis und ein bisschen Programmierehrfahrung reicht im > Prinzip. Ich würde sagen (in wachsendem Scheirigkeitsgrad) Variablen Einfache Datentypen Vergleiche Schleifenkonstrukte Promotion Regeln Arrays Funktionen samt Argumentpassing Variablen Scope Strings Standardfunktionen Strukturen Das sehe ich so in etwa als sinnvolles Grundgerüst an, dass man auf einem PC erwerben sollte, ehe man auf einen µC wechselt und die µC spezifischen Dinge mit dazunimmt. Die ersten Punkte sollten 100% sitzen, die letzteren sind vor allen Dingen Übungssache.
Vlad Tepesch schrieb: > Karl Heinz Buchegger schrieb: >> Die erste Hälfte eines C-Buches hat er auf >> einem PC in ein paar Wochen durch, wenn er einigermassen fleissig ist. > > ja, aber bis man das wirklich drauf hat und Lösungen für neue Probleme > erarbeiten kann brauchts sehr viel Übung und Wissen. Natürlich braucht es das. Aber das wird nicht einfacher, indem man sich auf einem µC mit Notbehelfen wie strategisch aufblinkenden LED behelfen muss, weil man sonst keine Möglichkeit für Ausgaben hat.
Exakt. Mit C auf so etwas komischen wie einem MC anzufangen, ist Masochismus und produziert nur Frust. Ich setze mich ja auch nicht in China in eine Vorlesung für Philosophie, ohne ein Wort chinesisch zu verstehen.
Ok, was Karl Heinz schreibt ist nicht von der Hand zu weisen. So wie es aussieht hat Dominik auch noch keine Erfahrung mit Controllern, oder Dominik? Dann wäre C in der Tat erst der 2. Schritt nach der Hardware. Und die alleine braucht schon eine Menge Zeit.
Also ich sehe das eigentlich ein wenig anders. Ich habe mit C vorher nichts zu tun gehabt und fand programmieren immer scheisse und hab die Nerds belächelt, die sich mit so einem Scheiß abgegeben haben. Dann musste ich im Studium mit Mikrocontrollern anfangen...durch die Prüfung musste ich ja auch durch, also was solls. Die Praktikumsaufgaben gemacht und Schritt für Schritt immer ein bischen mehr auf dem uC geschrieben (hatte ja auch keine andere Wahl). Also dann die Prüfung und doch gut mit ner 1 weggekommen ;-) Mittlerweile bin ich mit dem Studium fertig und programmiere nurnoch Mikrocontroller, mache also eigentlich genau das, was ich nie machen wollte. Aber der Mikrocontroller hats mit angetan. Studiert habe ich E-Technik - wollte immer Schaltungen entwickeln...hier trifft nun beides zusammen. Was ich sagen will: Meiner Meinung nach sollte man direkt mit dem uC anfangen und auf ihm lernen. Ich bin jetzt nicht der Super-Programmierer, das ist klar, aber ich komme sehr gut zurecht mit dem, was man bei Mikrocontrollern so machen kann - klar geht da noch wesentlich mehr, aber ich denke, der Bezug zum Zielthema sollte von Anfang mit dabei sein, dann macht der eher dröge Stoff auch Spaß, obgleich man natürlich nur diese schrittweisen kleinen Erfolge von LEDs zu externer Peripherie, usw... hat. Aber es wird halt immer mehr und ich finde, die Eigenschaften von C und das "Was passiert, wenn..." kann man auch recht gut in der IDE für einen uC nachvollziehen. Ich weiß jetzt nicht, wie es bei den AVR GCC usw. ist, ich habe von Anfang an mit IAR gearbeitet, konnte mich aber nie darüber beschweren, irgendwas nicht zu sehen. Single-Stepping gibt es hier ja ebenfalls, auch wenn man hier und da mal dumm guckt, weil auf einmal ein Interrupt kommt, aber das ist ja irgendwann auch alles klar.
Klaus Wachtler schrieb: > Exakt. > > Mit C auf so etwas komischen wie einem MC anzufangen, ist Masochismus > und produziert nur Frust. > > Ich setze mich ja auch nicht in China in eine Vorlesung für > Philosophie, ohne ein Wort chinesisch zu verstehen. Ja, da ist was dran, wie hatte man noch mal früher mit MCs angefangen als es noch keine PCs gab? Das war mühsam. Oder wie fängt man jetzt damit an, wenn man kein C, kein Assembler und kein Basic kann? Vielleicht ist dafür dann doch eine Empfehlung für so was wie myAVR angebracht um nicht mit asm anfangen zu müssen? Was meint Ihr?
Bei den Controllern muss man im wahrsten Sinne des Wortes die richtigen Register ziehen. Mit welcher Programmiersprache man das bewerkstelligt, ist fast schon Nebensache. Die Register für die einzelnen Funktionen sind im jeweiligen Controller- Datenblatt aufgeführt. Ich würde mir ein einfaches C-Buch für PC (z.B. "C Programmierung mit einfachen Beispielen" von Jürgen Wolf) besorgen, mal die ersten Kapitel querlesen, um zu wissen, wie C "gesprochen" wird und dazu ein C-Lehrbuch für den entsprechenden µController-Typ besorgen. Damit solltest Du schnell einsteigen können. Bei auftauchenden Fragen dieses Forum nutzen (Suchfunktion benutzen, das meiste haben schon zig Leute vor dir gefragt oder eben neuen Beitrag erstellen).
Nein habe auch noch keine Ahnung von Mikrocontrollern. Aber wie auch...ohne Programmieren kann mam da ja nicht wirklich was machen :-) Habe mir erst letzte Woche meinen eigenen Programmer gebaut. Habe mir schon vor einigen Tagen dieses Buch bestellt. "C: Programmieren von Anfang an" Was haltet ihr von dem? Könnt ihr mir ein Buch C Programmierung mit verbindung zu Mikrocontrollern empfehlen. Hab dieses hier im Forum gefunden. http://www.amazon.de/s?ie=UTF8&keywords=3778529439&index=blended
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.