Hi, ich will mich in nächster Zeit mit dem Thema µC Programmierung befassen. Ich hab mir den ATmega8 rausgesucht. Hardwareseitig habe ich keine Probleme, nur stellt sich mir jetzt die Frage: Welche Programmiersprache sollte ich lernen? Ich bin schon zuvor einige Schritte in C++ gegangen, deswegen dachte ich den µC vielleicht in C zu programmieren, weil diese Sprachen ja nciht weit voneinander entfernt sind. DOch allerdings sind diese Hochsprachen natürlich größere Hardwarefresser als Assembler. Fällt das in der Praxis überhaupt auf? Was sollte ich eure Meinung nach tun? Habt ihr irgendwelche Buchtipps o.ä. für mich? Danke im Vorraus!
habe lange in asm geschrieben. trotzdem würde ich dir wärmstens empfehlen in c zu schreiben, es sei denn es geht um riesige stückzahlen denn dann kommen andere gesichtspunkte hinzu. erstmal eine led blinkern lassen, dann eine taste abfragen usw. dann bist du schon sehr weit denn dann hast du auch schon rausgekriegt wie man das programm schreibt, compiliert und zum mega8 überträgt. vorher hinweise anderer zur hardware beachten, z.b. stromversorgung, takt usw. heute spielt die programm-größe nicht mehr eine so grosse rolle wie früher.
ein assembler programm ist aber auch schneller ... fällt aber bei normalen anwendungen nicht auf ... ich habe mit assembler angefangen, und werde auch glaub ich vorerst dabei bleiben
ob c oder combas, trotzdem werden situationen vorkommen wo do zu asm greifen wirst, also asm denke ich mal solltest du zu erst lernen und dann auf eine der hochsprachen umsteigen, abgesehen von asm würde ich aber das combas empfehlen, ist ja halt basic... MfG Michael
Hallo Marc, falls du an die µC's auch wirklich ernst herangehen möchtest, dann verschreibe ich dir erst einmal die asm-Pille. Denn erst durch die maschinennahen Assembler-Erfahrungen wirst du deinen Controller verstehen lernen - geschweige denn von zeitkritischen Echtzeit-Operationen, die meist in Assembler geschrieben werden und glücklicherweise problemlos in das C-Quellcode eingefügt werden können. Ein C-Compiler erzeugt bei mir bis zu 3 Mal mehr Code, als ich mit Assembler. Nicht zuletzt deswegen bin ich kein richtiger Freund der Hochsprachen, obwohl im Studium Note 1 in C/C++ hatte. Der einzige Vorteil der Hochsprachen ist deren Komfort. Aber: probiere ALLES, um dich selbst zu finden ;o) Mein Buchtipp rund um die Atmels: AVR-RISC-Mikrocontroller von Wolfgang Trampert (der echte Klassiker). Mfg Richard
Mit Assembler lernt man besser die Grundlagen kennen und kann daher danach viel besser und effektiver in C programmieren. Der Overhead von C ist nur etwa 10..50%, dafür nimmt es einem ne Menge an Kleinarbeit ab (Push, Pop, Variablen, Parameter). Also auch meine Meinung: Assembler zum Kennenlernen, dann später C zum richtig ranklotzen und für die großen Projekte. Peter
hallo richard, hallo hauke. ihr habt recht. es ist aber heute vielleicht auch leichter als früher wnn man anfängt. ich hatte noch nicht mal jemanden den ich damals fragen konnte und habe gleich in asm angefangen (compiler gabs nicht) und bin dann tagelang nicht vom fleck gekommen. daher will ich den frust lieber anderen ersparen wollen. der geschwindigkeitsaspekt ist ein argument, allerdings sind gerade zeitkritische berechnungen in asm ein gewaltiges zeitproblem (fft in asm). auch in c (meinetweg basic) hast du vollen zugriff auf alles. du kannst auch auf die fertigen header verzichten und die timer über ihre register als adressen ansprechen, dann musst du zwangsläufig deinen chip perfekt kennen. auch in asm kannst du fertige codeschnipsel reinkleben ohne sie zu verstehen. es ist ausserdem schwer die volle power aus einem prozessor rauszuholen, ich denke die meisten von uns beschränken sich gerne auf die wichtigsten befehle in asm und dann kann es sogar langsamer werden als in c. bei komplexen sachen (auch mathematisch anspruchsvoll) würde ich c als einzige vernünftige lösung sehen, bei reinen schnellen kommunikationssachen/überwachungen sollte man asm nehmen. eine perfekte lösung gibt es nicht.
Danke schonmal für die Antworten. Hättet ihr vielleicht Buchtipps für C bzw. Assebmler, die man eurer Meinung nach gelesen haben sollte?
Tutorial, Wiki und Linkliste auf dieser Seite studieren, dann brauchst du kein Buch. Beispiele gibt es massig in der Codesammlung. Es ist also alles da, was du brauchst.
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.