www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik erste Schritte


Autor: Marc (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: dicky (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Hauke Radtki (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Michael D. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Richard Spatschinski (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: dicky (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Marc (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.