Forum: Mikrocontroller und Digitale Elektronik Assembler, C, und CO


von Herbert S. (dj5zu)


Lesenswert?

Hallo
Kann mir jemand mal einen Tip geben, wie und mit welchen Hilfsmitteln 
man am einfachsten und wirkungsvollsten den Umgang mit Microcontrollern 
lernt ???

von Peter K. (peterka2000)


Lesenswert?

1. Ein brauchbares µC Board (Kann ich dir grad kein Beispiel geben)
2. Bücher, am besten erstmal für C
3. Falls AVR, dann das AVR-GCC Tutorial von hier

4. Grundausrüstung: Gaaaaaanz viel Schokolade wenns nicht klappt und 
Gaaaaanz viel Kaffee oder ähnliches

von Herbert S. (dj5zu)


Lesenswert?

Hallo Peter
Ich habe mit dem allseits bekannten Lernpaket "MICROCONTRÖLLER" vom 
Francis-Verlag angefangen, und somit mit AVR-Studio 4....
Des Weiteren habe ich inzwischen ein Programmiertool AVRISP MK II.
Soweit die Grundausstattung.
Jetzt stellt sich für mich die Frage: Wie kann ich damit ein (wenn auch 
nur einfaches) Programm in einen Mikrocontroller schreiben.
Villeicht mache ich as von mir aus auch nur so kompliziert????
Gruss
Herbert

von Floh (Gast)


Lesenswert?

Schau doch mal hier ins Tutorial und arbeite es durch:
AVR-Tutorial
AVR-GCC-Tutorial

von Wilhelm F. (Gast)


Lesenswert?

Herbert Schmitz schrieb:

> Kann mir jemand mal einen Tip geben, wie und mit welchen Hilfsmitteln
> man am einfachsten und wirkungsvollsten den Umgang mit Microcontrollern
> lernt ???

Ich stand 1992 vor dieser Frage. Kaufte ein erstes gutes Buch über µC, 
es war das "Mikrocontroller-Kochbuch" mit dem 8051. Einen PC hatte ich 
noch nicht, wollte aber erstmals die µC überhaupt begreifen lernen. Der 
nächste Gang war in einen Laden, Schuricht in Köln, wo ich zwei 
Standard-8031 in NMOS kaufte. Ja, und wenn man die dann zu Hause liegen 
hat, dann muß man auch mal was damit machen. Erst mal baute ich reine 
Hardware und Programmieradapter, wo ich byteweise ein EPROM mit brennen 
konnte. Was für ein Aufwand!

Mit dem PC kam dann mal ein Buch mit Buchdiskette ein 8051-Assembler. 
Mann, war das elegant.

Dann kam das Mikrocontroller-Handbuch über den 8031 von Elektor. 
Erstmals für serielle Kommunikation mit dem PC, und ein Komplettsystem, 
tolle Sache.

Zu diesen Zeitpunkten hatte ich noch nicht mal was mit einem 
Hochschulstudium zu tun. Aber was man da schon so alles machen kann! 
Einfach Spaß an der Freude, den Dingen.

Die Hochschule war aber dann in manchen Dingen doch interessant.

Heute sucht man sich IDE und Tools im Internet, und fertig ist die 
Kiste.

Die ersten beiden 8031 sind mir in Selbstbau-Schaltungen mal abgeraucht, 
danach aber nie mehr was. Die alten NMOS-Typen waren für den Einstieg 
mal gut, mehr auch nicht.

Als nächstes bestelle ich ein STM32F4DISCOVERY. Gleiche Chose wie mit 
meinen erstmals gekauften 8031. Ich muß dann was beginnen. Bei meinem 
letzten Bestellversuch vor 3 Monaten bei Watterott war es nicht 
lieferbar, denn sonst hätte ich es schon. Ich kann auch nur privat und 
per Nachnahme bestellen, nicht für gewerbliche Kunden.

Erst mal brauche ich Steckbretter, schaue mal bei Reichelt. Ich hatte 
bis heute nie ein vernünftiges Steckbrett, immer Eigenkonstruktionen und 
Drahtverhaue, Lochraster.

von Holger P. (Gast)


Lesenswert?

Also ich habe mit Assembler angefange, da mir mein Vater sagte damit 
lernt man den Controller richtig kennen. Mit C würde man ihn zwar 
bedienen können aber nicht richtig verstehen.

Bin ganz zufrieden bis jetzt.

von Wilhelm F. (Gast)


Lesenswert?

Holger P. schrieb:

> Also ich habe mit Assembler angefange, da mir mein Vater sagte damit
> lernt man den Controller richtig kennen.

Mit Assembler ist man näher an der Maschine dran.

> Mit C würde man ihn zwar
> bedienen können aber nicht richtig verstehen.

Und mit C kann man dann komplexere Software-Konstrukte bauen.

Z.B. nur rechnen. Mach mal nur eine Rechnung mit Dezimalausgabe in 
Assembler, dann in C.

von Markus W. (Firma: guloshop.de) (m-w)


Lesenswert?

Holger P. schrieb:
> Also ich habe mit Assembler angefange, da mir mein Vater sagte damit
> lernt man den Controller richtig kennen. Mit C würde man ihn zwar
> bedienen können aber nicht richtig verstehen.

Seh ich genauso. Aber ich geb zu, dass es da auch andere Meinungen gibt. 
;-)

Ich glaube aber, mit C solltest du nur dann anfangen, wenn du C bereits 
gut beherrschst. Falls du C noch nicht kannst, ist der Einstieg per 
Assembler bedeutend einfacher. Finde ich zumindest.

Was auf alle Fälle sehr gut ist, ist das Tutorial hier bei 
mikrocontroller.net:

AVR-Tutorial

Das verwendet zwar den eigentlich mehrfach überholten ATmega8 als 
Beispiel, aber das stört beim Einstieg besonders. Wenn du damit durch 
bist, wirst du alle möglichen Mikrocontroller verstehen, weil die 
Grundsätze immer wieder die gleichen sind.

von Peter R. (pnu)


Lesenswert?

Glaub nicht, dass der atmega8 "mehrfach überholt" sei. Den erst einmal 
zu beherrschen ist schon genug für den Anfang und etwas Übersehbares.

Man sollte doch beim Lernen vom Einfachen zum Komplizierten vorangehen.
Größere Kontroller haben gleiche Struktur und bieten nur ein mehr an nur 
vielleicht nötigen Zusatzfunktionen : AD/DA Wandler, Schnittstellen, 
Speicherumfang, watchdog, Interrupts, zusätzliche 32 kHz..

C zum Beispiel kann man oft nur dann richtig durchschauen, wenn man 
Details wie Datentypen anhand von Assembler erklärt.

Beim Umgang mit C lernt man im Laufe der Zeit sowieso zwangsweise das 
nach, was beim Assembler Grundkenntnis ist.

Außer man schreitet gern (per copy und paste aus Bibliotheken) über den 
zugefrorenen See.

OT. natürlich reden Viele von "überholt und "veraltet" aber das ist 
meistens nur der Versuch, Obsolenz herbeizuführen. Das sollt man lieber 
den Leuten überlassen, die die nächsten Gigabyte oder die n+1-te 
Programmversion verkaufen wollen

von Christian H. (netzwanze) Benutzerseite


Lesenswert?

Ich habe damals mit einem 80C535 und einem passenden Buch 
(Assembler-Befehlssatz 8051; den Titel weiß ich gerade nicht) 
angefangen.
Programmiert habe ich mit einem einfachen Texteditor (keine IDE) - 
natürlich in Assembler.

Der dazu notwendige Makroassembler meiner Wahl: 
http://john.ccac.rwth-aachen.de:8000/as/

Mehr hatte ich zunächst nicht (ja, nur das Buch, den Texteditor und den 
AS; keine Hardware). Ich schrieb ein, für die damaligen Maßstäbe, recht 
unfangreiches Programm. Der Debugger und Simulator lief offline - auf 
einem Endlospapierausdruck des Quellcodes und in meinem Kopf. Ich bin 
jedes Kommando im Kopf durchgegangen und habe mir die Ergebnisse 
vorgestellt.
Erst als das Programm soweit "korrekt" war, hatte ich mich an die 
Hardware gemacht.

80C535, EPROM, etc.

Um das EProm zu brennen, baute ich mir noch einen Programmer.
Dann ging es los... Programm ausprobieren...

Die Ende von der Geschichte... Das Programm lief auf Anhieb fehlerfrei 
(zumindest sind mir nie welche aufgefallen - die Hardware lief zumindest 
noch 10 Jahre; es könnte auch sein, dass sie jetzt noch verwendet wird - 
das wären dann 30 Jahre).

So lernt man programmieren.

von Herbert S. (dj5zu)


Lesenswert?

Hallo
Das waren schon mal sehr gute Hinweise. Also werde ich mir mal das 
AVR-Tutorial durcharbeiten, was schon einige Zeit in Anspruch nehmen 
wird.
Dann kann ich hoffentlich damit anfangen, mit Assembler zu arbeiten.
Aber nun noch eine weitere Frage:
Wenn ich ein Programm in einen Mikrocontroller geschrieben habe und es 
sich als nicht brauchbar erwest, kann ich dann das geschriebene Programm 
einfach im Controller überschreiben oder muss ich das IC dann 
wegwerfen????
Gruss Herbert

von Mr. X (Gast)


Lesenswert?

Herbert Schmitz schrieb:
> Wenn ich ein Programm in einen Mikrocontroller geschrieben habe und es
> sich als nicht brauchbar erwest, kann ich dann das geschriebene Programm
> einfach im Controller überschreiben oder muss ich das IC dann
> wegwerfen????

Früher war das in der Tat die Frage: Entweder eine teure Bauform des 
Controllers mit Quarzfenster und EPROM oder eine nur einmal 
programmierbare Bauform im geschlossenen Gehäuse (OTP). Heutige µC mit 
Flash-Speicher lassen sich je nach Typ so um die 10000 ... 100000 Mal 
neu programmieren.

von Hmm (Gast)


Lesenswert?

In diesem Zusammenhang könnte man noch erwähnen, das es in AVRStudio 
einen "Simulator" gibt.

Da man darin recht schön sehen kann, welche Effekte die Befehle haben 
und unter welchen Bedingungen sie arbeiten und da Du am Anfang, 
vermutlich ohnehin eine Menge nicht ganz funktionierenden Code schreiben 
wirst empfehle ich Dir ihn zu benutzen.

Zwar hat er so seine Grenzen und auch Fehler, aber dennoch sparst Du Dir 
eine Menge Zeit und auch von den 100.000 Programmierzyklen einiges.

Später kannst Du Dir noch Hapsim anschauen, wenn Du Peripherie 
simulieren willst.

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.