PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Assembler Anfänger



Zwerwelfliescher
25.06.2009, 17:47
Hi,

ich möchte mich an die Programmierung von Atmel Controlern trauen.
Jetzt fehlt mir nur noch die passende Programmiersprache.
Ich habe als erstens an C gedacht, aber im nachhinein habe ich Assembler gefunden.
Jetzt meine Frage. Welche Programmiersprache ist besser zu lernen?
Als erstens möchte ich mit einem ATinny13 anfangen und ein paar LED´s zum Blinken bringen. Später versuche ich einen ATmega8 zu programmieren. In Youtube habe ivh ein Video von einem ATmega gefunden, der Bilder auf einer Dotmatrix anzeigt. Welche Sprache ist für solche anwendungen besser?

021aet04
25.06.2009, 17:57
Am besten ist Assembler. Damit programmiert man am nähesten an der Hardware, dadurch ist ein ASM Programm schneller. Habe keine Erfahrung mit ASM. Die Sprache C ist etwas leichter. C ist aber etwas langsamer. Bei C hat an einen längeren Code als bei ASM. Für kritische Aufgaben kann man in einem C Programm auch ASM verwenden (Inline Assembler)

Als dritte Sprache gibt es Basic.

Ich verwende C als Programmiersprache

neumi
25.06.2009, 18:01
Hallo Flexxx!

Wenn du ein bisschen verstehen willst wie der Prozessor funktioniert, würde ich mal mit Assembler anfangen. Für den Einstieg von Grund auf an: http://www.mikrocontroller.net/articles/AVR-Tutorial Der "Nachteil" von Assembler ist, dass es nicht so komfortabel ist wie das Programmieren in einer Hochsprache (C, Basic,...) Umfangreiche Projekte sind in Assembler wesentlich aufwendiger zu realisieren als in C. Also solltest du auf kurz oder lang dann auf C umsteigen. Assembler wird eigentlich nur mehr bei wirklich zeitkritischen Spezialfällen, wo man ganz genau wissen muss was der µC tut, verwendet. Assembler ist "eine Abstraktionsebene" näher an der Hardware als zum Beispiel C, was die angesprochenen Vor- und Nachteile hat.

lg neumi

Zwerwelfliescher
25.06.2009, 18:06
Kann ich dann auch mit C eine Punktmatrix steuern(anzeigen)?
Kann man mit AVR Studio 4 auch in C programmieren?

neumi
25.06.2009, 18:18
Kann ich dann auch mit C eine Punktmatrix steuern(anzeigen)?
Ja klar kannst du auch mit C eine Punktmatrix steuern.


Kann man mit AVR Studio 4 auch in C programmieren?
Nur wenn du AVR-GCC mit dazu installierst.

Zwerwelfliescher
25.06.2009, 18:22
Ich kann mich immer noch nicht entscheiden :-(
Entweder Assembler oder C.
Ich kenne so ein Lernpaket Mikrocontroler von Franzis, da wird einem Assembler beigebracht.
Für C kenne ich so etwas nicht.
Gibt es in C auch diese Zahlensysteme:http://www.mikrocontroller.net/articles/AVR-Tutorial:_IO-Grundlagen
Ziemlich am Anfang

neumi
25.06.2009, 18:29
Zahlensysteme haben nichts mit Programmiersprachen zu tun. Die gibt es in jeder Programmiersprache.
Auf mikrocontroller.net gibt es übrigens auch ein sehr ausführliches Tutorial für C.
Wie schon gesagt ich würde mit Assembler anfangen und dann später auf C umsteigen. Wenn du unbedingt nur eine Sprache lernen willst, dann lern C.

Zwerwelfliescher
25.06.2009, 18:32
Ich weis ja nicht, ob ich in meiner späteren Ausbildung auch Programmieren lerne.
Ich werde mir ein paar Infos zu Assembler holen.

Besserwessi
25.06.2009, 20:01
So eine LED Matrix kann man in C, Assembler oder auch BAISC programmieren. Assembler ist mehr was für kleine Programme oder Programmteile, wenn man wirklich die volle geschwindigkeit oder eine sehr genaue Kontrolle über die Zeiten braucht. Für längere Programme ist C einfach übersichtlicher, leichter zu ändern und schneller geschieben. Es kommt also darauf an, welche Sprache besser geiegnet ist. GCC auch schon recht effektiv und damit nicht immer langsamer als von Hand in ASM, vor allem wenn man nicht so viel Übung hat.

Um den µC wirklich ganz zu verstehen sollte man schon ASM können. Gerade für Zeitkritische Teile kann man so berechenen oder abschätzen wie schnell etwas zu machen ist. Beim Compiler kann man nie wissen ob nicht doch noch ein paar andere Compileroptionen oder ein umstellung die Sache nochmal viel schneller macht, außer man schaut sich den ASM Code an.

Zwerwelfliescher
25.06.2009, 20:49
Ich werde mit Assembler anfangen.
Wenn ich einigermaßen gut kann, suche ich mir eine andere Sprache aus.

MFG

Flexxx

Devid
25.06.2009, 21:12
Flexxx,

ein Programm, dass ich dir zum Proggen empfehlen kann ist
myAVR Workpad SE. Bei dieser Software gibt es ne menge Hilfestellungen, die den Einstieg in Assempler erleichten. Neben Beispielprogrammen kannst du auch auf einen Hilfebuton erklärungen zu den einzelnen Assemplerbefehlen bekommen. Zusätzlich kannst du in dem Programm auch auswehlen, welchen Controllertypen du benutzt und es wird dir das Programgruntgerüsst für den Controllertypen vorgegeben.
noch etwas besser ist myAVR Workpad Plus. Das ist im Grunde das selbe, nur das du hir nicht nur in Assempler sondern auch die Sprache C wählen kannst.
http://shop.myavr.de/index.php?sp=artlist_kat.sp.php&katID=7

gruss David