Forum: Mikrocontroller und Digitale Elektronik erste Schritte


von Marc (Gast)


Lesenswert?

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!

von dicky (Gast)


Lesenswert?

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.

von Hauke Radtki (Gast)


Lesenswert?

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

von Michael D. (Gast)


Lesenswert?

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

von Richard Spatschinski (Gast)


Lesenswert?

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

von Peter D. (peda)


Lesenswert?

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

von dicky (Gast)


Lesenswert?

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.

von Marc (Gast)


Lesenswert?

Danke schonmal für die Antworten. Hättet ihr vielleicht Buchtipps für C
bzw. Assebmler, die man eurer Meinung nach gelesen haben sollte?

von Alex (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.