Hallo an alle, ich Studiere gerade Elektrotechnik und bin im 3. Semester. Wir lernen zur Zeit in Assembler zu programmieren am AVR 8-Bit µP. Leider brauchen wir im 4. Semester im Vertiefungsstudium Austomatesierung die Programmierung mit C. Zudem ist der Untericht sehr schlecht und man versteht nicht wirlich viel(C++ habe ich sehr gut verstanden). Meine Frage, gibt es Bücher für den Einstieg und den darüber hinaus zum Thema Assembler und C die sich nicht direkt auf etwas, ausser natürlich den µP, speziealieren? Vielen dank
Also Assembler allgemein ergibt in meinen Augen keinen Sinn. Die Hersteller haben alle ihre eigenen Befehle / Sythax. Für Microcontroller C im Allgemeinen kann man nur Standart ANSI-C empfehlen. Dazu gibt's von Galileo ein schönes Buch. Das Problem am Programmieren bei Microcontrollern ist nicht die Programmiersprache sondern WIE das Programm umgesetzt wird. Man muss die Methoden und Möglichkeiten kennen wie man Hardware und Software so kombiniert, dass das gewünsche Resultat rauskommt. Die Programmiersprache C ist hier nur wie ein (fundamentaler) Schraubenzieher in deinem Werkzeugkoffer. Um zielführend arbeiten zu können muss man die Kombination aus Hardware (die stellt jeder µC individuell zu Verfügung) und Software beherrschen. Für C braucht du nur das normale ANSI-C und dann das Hardwarespezifische was man nicht generalisieren kann. Noch eine Sache: Masterofeye schrieb: > AVR 8-Bit µP Ein Microcontroller ist nicht mit einem Microprozessor zu verwechseln! Das ist etwas sehr elementares das zu verstehen.
Hallo Michael, Es ist mir klar das die Syntax von Prozessor zu Prozessor anders sind. Das hab ich auch geschrieben. Mann muss es schon auf eine Familie beziehen wie AVR. Zitat " Das Problem am Programmieren bei Microcontrollern ist nicht die Programmiersprache sondern WIE das Programm umgesetzt wird. Man muss die Methoden und Möglichkeiten kennen wie man Hardware und Software so kombiniert, dass das gewünsche Resultat rauskommt. " Ja so ein Buch such ich :) "Um zielführend arbeiten zu können muss man die Kombination aus Hardware (die stellt jeder µC individuell zu Verfügung) und Software beherrschen. " Ja die 385 Seiten von dem µC hab ich vormir. Was mir fehlt und was du beschreibst ist der Zusammenhang zwischen z.b. dem Timer und dem Code. Dieser erschließt sich mir aus der Vorlesung nicht (glaub so geht es 90% im Studiengang bei diesem Professor). Die Klausur wird mit meinem Halbwissen zu bestehen seien aber ich brauch es ja auch im 4. Semester und darüber Hinaus. Was ich mir vorstelle wäre ein Buch wo von LED bis ka AD Wandlung, Timer usw. alles erklärt wird und das Anhand einer kongreten Familie oder eines µC. Das dann natürlich Befehle anders sind ist klar aber der Generelle ablauf fehlt mir. Vielen Dank Ps: Uns wurde gesagt des es HEUTE kaum noch einen unterschied zwischen µC u. µP gibt.
Masterofeye schrieb: > Ps: Uns wurde gesagt des es HEUTE kaum noch einen unterschied zwischen > µC u. µP gibt. Hoffentlich stammt diese Aussage nicht von einem Prof, denn sie ist falsch. Zitat aus Wikipedia: "Als Mikrocontroller (auch µController, µC, MCU) werden Halbleiterchips bezeichnet, die mit dem Prozessor mindestens Peripheriefunktionen auf einem Chip vereinen. In vielen Fällen befindet sich der Arbeits- und Programmspeicher ebenfalls teilweise oder komplett auf dem gleichen Chip. Ein Mikrocontroller ist praktisch ein Ein-Chip-Computersystem." Besser kann ich es auch nicht beschreiben. Grüße, Peter
Hallo Masterofeye, Beispiel Timer, man muß schon wissen was man tun möchte. Ein Timer kann z.B. aller 100ms einen Interrupt auslösen. Im Interrupt wird ein Zähler heruntergezählt, und bei Erreichen der Null wird ein Flag gesetzt, das dann im Hauptprogramm abgefragt wird. Z.B für einen Timeout. Ober der Timer steuert eine PWM an. Oder.... Im Assembler -Totorial sind diese Funktionen, meiner Meinung nach sehr gut beschrieben, auch das Atmel-DB ist brauchbar. Schönen Sonntag noch! P.S. Ob Unterricht/Vorlesung "schlecht" ist möchte ich nicht weiter untersuchen. Manche Profs können gut erklären, manche nicht. Manche verstehen auch nicht, daß ein anderer ihre Erklärungen nicht versteht, da hilft dann nur nachfragen. (Nachfragen war bei uns z.T. ausdrücklich erwünscht)
Masterofeye schrieb: > Zudem ist der Untericht sehr schlecht und man > > versteht nicht wirlich viel(C++ habe ich sehr gut verstanden). C++ ist doch schon mal eine Basis. C ist ja gewissermassen eine Untermenge von C++. Das war's dann aber auch schon. Entscheidend sind, wie Lehrmann Michael schon richtig bemerkte, die Konzepte mit denen man etwas umsetzt. Vielleicht solltest du mal das sehr gute Tutorial in diesem Forum von Anfang bis Ende durcharbeiten. Eigentlich ist da alles drin, was du suchst. Nur du darfst das nicht mit einem PC vergleichen. Du Hast kein Betriebssystem. Du musst jede Kleinigkeit selbst entwickeln, damit du einen Durchblick für die gesamte Technik bekommst. Du musst Datenblätter lesen und umsetzen können. "Hat mal einer ein Script?" hilft dir keinen Schritt weiter. Masterofeye schrieb: > Ps: Uns wurde gesagt des es HEUTE kaum noch einen unterschied zwischen > > µC u. µP gibt. Naja. Früher, als man noch deutsch und nicht denglish sprach, hiessen die Controller noch Ein-Chip-Mikrocomputer. Und genau das sind sie heute mehr denn je. Auf den Dingern ist alles drauf, was man braucht: ROM, RAM, Ports, Timer... Auf einem Core i7 ist das nicht alles drauf, genauso wie bei dessen Urvater dem 8086. An einen AVR kannst du eine Batterie und eine Leuchtdiode anschliessen und die Leuchtdiode bis die Batterie leer ist blinken lassen. Versuch das mal mit einem PC-Prozessor. Diesen Unterschied würde ich nicht als kaum bezeichnen. Du solltest wirklich jede Funktion des Controllers anhand des Tutorials durcharbeiten. Und dir ein möglichst einfaches C-Buch zur Hand nehmen, das nicht ständig mit Beispielen kommt, die nur auf einem PC laufen. Es nützt dir nichts am Beispiel einer Lagerverwaltung, war bei Pascal mal ein beliebtes Thema, die Prgrammiersprache zu lernen. Ausprobieren kann man natürlich vieles auf dem PC. Das gleiche muß dann auch auf dem AVR laufen. Da zeigen sich dann aber auch ganz schnell die Unterschiede zwischen 8-Bit und 32-Bit Rechnern. Fange Schritt für Schritt an. So eine Art "Hello World". Taster anschliessen, LED anschliessen, Taster drücken, LED geht an, Taster los lassen LED geht aus. Nächster Schritt: Taster einmal drücken LED geht an, Taster zweimal drücken LED geht aus. Wenn das läuft hast du einen Port gelesen, etwas auf einem Port ausgegeben, einen Taster entprellt und dafür einen Timer benutzt. usw. usw. Irgendwann bist du dann beim AD-Wandler, PWM, E²PROM, UART ... Was du dazu brauchst findest du alles im Tutorial. mfg.
Ah das Tutorial sieht gut aus, wir arbeiten auch mit einem Amtel den ATmega 128 . Leider ist die Seite nach meinem empfinden etwas unübersichtlich aber das gibt sich mit der Zeit. An Sepp.: Ich kann ja nicht jeden Punkt nachfragen. Ausserdem haben wir es schon über den Studiendekan versucht und er macht genauso weiter... . An Thomas Eckmann: Ja mit LED blicken usw. haben wir schon hinter uns. Haben einen Schrittmotor angesteuert sind letztes mal beim ADC stehen geblieben und jetzt kommen Interrupts. Leider ist es in den Praktikas so das man sich von Schritt zu schritt hangeln muss, wo oft das Hardware wissen fehlt und man den Laboring. fragen muss. Werde jetzt mal das Tutorial durchlesen. Vielen dank an alle LG Masterofeye
Die Ursprüngliche Frage war ja nach Büchern: http://www.amazon.de/dp/3895761761/ Heir geht es ziemlich ans Eingemachte: http://www.amazon.de/dp/3895762180/ http://www.amazon.de/dp/3895762008/ Davon habe ich 8051-Version, die ist recht anschaulich: http://www.amazon.de/dp/3486589881/ Einfach mal bei Amazon oder Google-Books reinblättern, oder in der UB ausleihen. tschuessle Bernhard
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.