Hallo, möchte mich mit der Programmierung von Mikrocontrollern beschäftigen, dazu suche ich ein geeignetes Buch über C für Einsteiger und weiterführende Materie. Wer kann in der Richtung etwas empfehlen?
Hallo, möchte mich mit der Programmierung von Mikrocontrollern beschäftigen, dazu suche ich ein geeignetes Buch über C für Einsteiger und weiterführende Materie. Wer kann in der Richtung etwas empfehlen?
Hi,
Auf mikrocontroller.net gibts gute Einsteigertutorials.
Gruß Gizeh
Wenn man mich nicht zwingen würde, hätte ich das hier nie geschrieben ....
Hallo, hätte noch eine Frage, habe ein günstiges Buch zur 8051 Familie gefunden, gibt es da jetzt in der C-Sprache himmelweite Unterschiede, zu den neueren Atmega usw. oder sind das mehr die Header-Dateien in den einzelnen Entwicklungsumgebungen, die sich darin unterscheiden?
Hi,
also die Programmiersprache C ist natürlich überall gleich. Allerdings programmierst du einen µC auf Hardwareebene
und da gibt es gewaltige Unterschiede bezüglich der Architektur wie z.B. Register, Speicherverwaltung, IO, usw.
8051 und AVR sind zwei paar Stiefel und da kann man nicht mal kurz eine .h austauschen. Das gilt natürlich nicht nur
für die beiden µC sondern für viele andere.
Aber warum muss es denn ein Uralt 8051 sein? Nur weil du ein günstiges Buch gefunden hast?
Nimm einen AVR oder Pic. Und wenn du nur so mal zwischendurch mal was basteln willst, tuts auch eine PicAxe, der in Basic
programmiert wird.
Gruß Gizeh
Wenn man mich nicht zwingen würde, hätte ich das hier nie geschrieben ....
Warum ein Uralt? - hatte mit C angefangen mich einzulesen und schon einige Übungen dazu gemacht, doch festgestellt, dass es mehr für den PC ist und nicht auf die µC Programmierung eingegangen wird. Klar ist es hilfreich, sich einzulesen, doch mein eigentliches Ziel ist eben µC. So, bevor ich aber Unmengen an Kohle in Bücher stecke, die eventuell nix bringen und ich eben der Meinung bin ein altes erzielt auch den Zweck, weil es mir hauptsächlich dann um C geht. Klar möchte ich dann mit AVR beschäftigen, doch erst einmal Grundlagen eben für C. Basic interessiert mich eben weniger. Möchte als erstes Projekt eine Anzeige für eine Leistungsmessung und SWR-Meter für eine KW Verstärker programmieren, eventuell eine automatische Umschaltung für die Ausgangsfilter von 80-10m.
Wozu auch? C ist und bleibt C.
Dann suche dir eine passende Entwicklungsumgebung für dein Baby und programmiere das "Hello World" für Controller (blinkende LED).
Tote Bäume? Das ist aber sowas von Old School. Wozu gibt es denn das Internet? Zum Programmieren findest du dort alles was das Herz begehrt. Die Seite Stackoverflow wird dein neuer Freund. Ich hoffe du kannst ausreichend Englisch.
Einfach nur schöner fernsehen. "Geht nicht" gibt's nicht.
Tote Bäume haben gewisse Vorteile, bei meinem schlechten Kurzzeitgedächtnis mal schnell hin und her Blättern und um vor dem Sandmännchen , nochmal schnell eine paar Seiten zu lesen, hatte damit schon durchschlagenden Erfolg beim Lernen bezüglich des Amateurfunkzeugnisses. Und der Baum ist schon länger tot.
Stackoverflow werde ich mir gleich zu Gemüte führen. Wenn es mit den Kenntnissen etwas hapert, werde ich meine Uroma fragen.
Update: Na ja, für mich als Anfänger zu wenig Infos auf Stackoverflow, später einmal...
Update: Werde mich wohl mit Atmelstudio und einem entsprechenden Buch dazu beschäftigen.
Hi,
Weil der Original 8051 aus dem Jahre 1980 stammt. Natürlich gibt es auch Derivate die auf relativ aktuellem Stand sind, aberWarum ein Uralt?
neu Anfangen würde ich mit diesem Oldie eben nicht mehr.
Wenn du meinem Rat aus Posting#2 gefolgt wärst, und hättest mal auf der größten deutschen µC Community vorbeigeschaut
hättest Du zum 8051 folgendes lesen können:
Die Architektur ist für C-Compiler wegen des begrenzten Stack-Speichers und den vielen notwendigen Spracherweiterungen eher weniger geeignet: push und pop Befehle stehen nur für die unteren 256 Byte Ram zur Verfügung, in denen auch die 4 Bänke a 8 Register liegen. Braucht man einen größeren Stack so ist man darauf angewiesen, das der Compiler push und pop als langsamere XRAM Zugriffe emuliert. (small <-> large memory model). Die SFRs teilen sich 128 Adressen mit dem oberen Teil des internen RAMs. Die SFRs werden direkt, die oberen 128 Byte RAM indirekt adressiert. Bei den unteren 128 Byte RAM sind beide Adressierungsarten möglich. Da es sich um einen indirekten Zugriff handelt, können auch die oberen 128 Byte RAM für den Stack genutzt werden.Programmieren lernt man nicht durch lesen, sondern durch Programmieren.nochmal schnell eine paar Seiten zu lesen, hatte damit schon durchschlagenden Erfolg beim Lernen bezüglich des Amateurfunkzeugnisses
So, zum Schluß nochmal meine Empfehlung:
1. Eigne dir die Grundlagen von C an (ohne µC)
2. Besor dir einen AVR und arbeite das AVR-GCC-Tutorial durch.
Wie du jetzt weitermachst ist deine Entscheidung. Viel Erfolg.
Gruß Gizeh
Wenn man mich nicht zwingen würde, hätte ich das hier nie geschrieben ....
Danke Dir für Deine Rückmeldung.
Die ersten Suchergebnisse brachten mich auf eine Seite mit einem Video-Online-Kurs zum 8051. Für einen Anfänger schon etwas schwierig gleich die Spreu vom Weizen zu trennen.
Das AVR-GCC-Tutorial auf Mikrocontroller(.)net ist mir zu kurz abgehandelt und es fehlt mir das Hintergrundwissen z.B. bitweise Verknüpfung, schieben links usw.
Da finde ich ein Buch eben kompakter, als stundenlang im Netz nach Material zu suchen. Lesen und dabei in die Tasten hauen ist mir klar, die Übung macht den Meister(hust)...
Man kann sich aber auch schon mal vorher einlesen und kennt dann schon bestimmte Begriffe.
Eine Atmel 2560 aus China ist schon unterwegs, dauert noch bis der kommt. Den habe ich aber erst vor 4 Wochen bestellt....
Fragen werden dann sicherlich schon aufkommen und dann wird das Netz sicherlich eine Möglichkeit sein, nach bestimmten Themen zu suchen.
Oui! Bitakrobatik gehört zum 1x1 der Programmierung. Das wird besonders beliebt, wenn es in den µC-Bereich geht. Da geht es ohne Bitgefummel kaum noch ab.
Verlustiere dich erst mal mit der binären Darstellung. Dann weißt du auch ganz schnell, was links und rechts schieben veranstaltet. AND, OR, XOR und Hexzahlen... das brauchst du. Versprochen!
PS: Stackoverflow ist kein Schmöker. Dort findet man Lösungen zu Codierproblemen. Wenn man Tante Google fragt, schleppt sie einen ganz fix dort hin. Du wirst merken, dass dort wirklich brauchbare Antworten zu finden sind. Dümmliches Gelaber wie "warum willst du das machen?" gibt's dort nicht. Da gibt's Lösungen. Fertig!
Einfach nur schöner fernsehen. "Geht nicht" gibt's nicht.
Ja, Tante Google hat mich schon zu Stackoverflow hinbegleitet und mir ein Erfolgserlebnis beschert .... es ist eben versunkenes Wissen aus der Schulzeit wieder aufzufrischen(binär und hex). Was mir eventuell noch helfen könnte, ein paar Übungen zu den verschiedenen Themenbereichen, kennst du da eine Seite im Netz, die etwas anbietet?
Keine Ahnung was du wirklich suchst. Einzelprobleme führen früher oder später zu Stackoverflow. Hintergründe findet man auf Wikipedia. Ansonsten hilft ein "how to" bzw. ein "tutorial" beim Suchbegriff, wenn Englisch ok ist.
Üblicherweise will man etwas hinbekommen. Das kann erst mal das "Hello world" sein. Die Fragen kommen von selbst und die Antworten von Stackoverflow.
Einfach nur schöner fernsehen. "Geht nicht" gibt's nicht.
Was ich suche, hm.... das Buch mit dem ich angefangen in C, fängt ja irgendwo an, so wie eben "Hello World" und ist in verschiedene Kapiteln unterteilt, zu jedem Kapitel sind Übungen und Aufgaben mit drin, stellenweise eben nicht genug, suche mehr in der Richtung Übungen etwas, um gelerntes ins Langzeitgedächtnis zu schieben. Die Wissenschaft sagt aus, erst ab 600 Wiederholungen, verfestigt sich gelerntes im Langzeitgedächtnis. War eben nur eine Frage, ob Du da eventuell eine Seite im Netz kennst.
Dann denk dir doch was eigenes aus, was du programmieren kannst.
Was die wissenschaft so sagt... ich brauhc keine 600 wiederholungen
Lesezeichen