erste Schritte

Gast #161222
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
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
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
Gast
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
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
Gast
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.
Gast
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.