erste Schritte

Gast #161222
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!
Gast #161223
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.
Gast #161225
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
Gast #161226
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
#161227
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
Gast #161228
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren