Forum: Mikrocontroller und Digitale Elektronik Mikrocontrollerprogrammierung von Atmel µCs


von Martin M. (silent_max)


Angehängte Dateien:

Lesenswert?

Guten Morgen und ein recht herzliches guten Morgen.

Kurz zu meinem Annliegen:

In der Technikerschule habe ich im zweiten Jahr das Fach 
Microkontrollertechnik bekommen. Ich hatte noch nie was damit zu tun und 
ich muss ganz ehrlich zugeben, dass ich große Probleme mit dem Fach 
habe.

Einen groben Überblick über die Funktion eines µCs habe ich hier 
bekommen:

http://de.wikipedia.org/wiki/Mikrocontroller

Jetzt weiß ich wenigstens, was "Watchdog" bedeutet oder ist. Aber jedoch 
nicht, wie der Ablauf eines Arbeitsprozesses ist. µCs arbeiten doch 
Befehl nach Befehl ab, auf Hex-Basis??

Dem Posting habe ich zwei Bilder angehängt, zu denen ich ein paar Fragen 
habe.

Bei dem Bild mit der gelben Linie:

Was bedeutet "Flash", "RAM" und "EEPROM" bzgl. der µC-Technik?

Ich dachte immer, dass Flash temporäre, sich schnell ändernde Zustände 
oder Daten/Dateien sind (wobei ich bei Google sogar über den Begriff 
Flash-Back gestolpert bin). Was bedeuten die andere Begriffe?

Bei dem anderen Bild bin ich noch ahnungsloser. Ich kann zwar die 
einzenlenen aneinander gereihten Buchstaben lesen, die ein Wort ergeben, 
aber ich versteh einfach nicht, in welchem Zusammenhang die beiden 
Balken und die Informationen daneben stehend stehen. Kann mir das jemand 
erklären?

Meine letzte Frage ziehlt auf Befehle ab.

Kennt jemand eine Befehlssammlung, was welcher Befehl bewirkt und/oder 
bedeutet und eventuell Übungen?

Ich möchte meinem Lehrer/Dozenten wirklich nicht in den Rücken fallen, 
ihn nicht in den Dreck ziehen oder sonstiges, bitte versteht mich nicht 
falsch. Er ist sogar ein sehr guter Lehrer. Ich habe nur gemerkt, dass 
ich mehr machen muss, um µC-Programmierung zu verstehen.

An der Stelle möchte ich erwähnen, dass das AVR - GCC - Tutorial sehr 
gut ist. Und dafür möchte ich mich bei denen bedanken, die es entworfen 
haben.

Werde ich mich wohl weiter durcharbeiten müssen.

Mit freundlichen Grüßen

Martin

von Olaf (Gast)


Lesenswert?

> Ich habe nur gemerkt, dass
> ich mehr machen muss, um µC-Programmierung zu verstehen.

Dann solltest du jetzt mal aufstehen in die Bibliothek deines
Vertrauens laufen und nach Buechern ausschau halten.

Und nein, Internet ist nicht die Loesung und in Foren
rumfragen auch nicht weil dein Wissenstand bei 0 liegt
und du eine didaktisch vernuenftige, aufeinander aufbauende
Vermittlung des Themas brauchst.

Olaf

von Martin M. (silent_max)


Lesenswert?

Hast Du dann eine gute Buchempfehlung??

von Name (Gast)


Lesenswert?

Die Techniker sind halt auch nicht mehr das, was sie mal waren. 
Gurkentruppe!

von g457 (Gast)


Lesenswert?

> Was bedeutet "Flash", "RAM" und "EEPROM" bzgl. der µC-Technik?

Flash: persistenter Programmspeicher (bei AVR; bei anderen kann das auch 
(oder nur) Datenspeicher sein)
RAM, SRAM: flüchtiger Arbeitsspeicher
EEPROM: persistenter Datenspeicher (bei AVR; bei anderen kann das auch 
Programmspeicher sein).

Die technischen Details zu den Speichern finden sich z.B. in der 
Wikipedia. Die Details zum Einsatz im AVR finden sich im jeweiligen 
Datenblatt. Zieh Dir mal das vom z.B. ATmega8 [1] als 
Nullachtfuffzehnstandardmegaavr. Oder wenns gleich einer sein soll, der 
auch externes SRAM kann, dann z.B. das vom ATmega162 [2].

> Bei dem anderen Bild bin ich noch ahnungsloser. [..] aber ich versteh
> einfach nicht, in welchem Zusammenhang die beiden Balken und die
> Informationen daneben stehend stehen.

Das ist eine grafische Visualisierung der Zuordnung von 
(Speicher)Adressen zu physischem Speicher, links der Programmspeicher 
('Flash'), rechts der flüchtige Datenspeicher (SRAM, Register, 
IO-Register, externer SRAM, ..). Schau in die Datenblätter (vorzugsweise 
vollständig lesen.. ja die sind umfrangreich, aber dafür auch ziemlich 
informativ), da steht das genauer drin.

> Kennt jemand eine Befehlssammlung, was welcher Befehl bewirkt und/oder
> bedeutet [..]

Das Datenplatt.

HTH und HF

[1] http://atmel.com/dyn/resources/prod_documents/doc2486.pdf
[2] http://atmel.com/dyn/resources/prod_documents/doc2513.pdf

von spess53 (Gast)


Lesenswert?

Hi

>> Kennt jemand eine Befehlssammlung, was welcher Befehl bewirkt und/oder
>> bedeutet [..]

>Das Datenplatt.

Besser:

http://www.atmel.com/dyn/resources/prod_documents/doc0856.pdf

MfG Spess

von avr (Gast)


Lesenswert?

Hallo Martin,

auch nen guten Morgen.

Hier gibt es ein Tutorial für AVRs und Assembler:

http://www.avr-asm-tutorial.net/avr_de/index.html

Die Befehle sind alle erklärt.

Schau dort mal in die unterschiedlichen Bereich ;)

avr

von Martin M. (silent_max)


Lesenswert?

@g457 und spess53:

Vielen, vielen Dank.

Andere Frage:

Meint ihr auch, dass ich zu einer Gurkentruppe an Technikern gehöre??

von PR-Referent (Gast)


Lesenswert?

Martin Müller schrieb:
> Andere Frage:
> Meint ihr auch, dass ich zu einer Gurkentruppe an Technikern gehöre??

Das häng davon ab, wie schnell du dazu lernst.

von g. b. (gunb)


Lesenswert?

@Martin Müller:

Vielleicht überlegst du dir im Zuge der Einarbeitung ein 
µC-Entwicklungsboard anzuschaffen. Besonders für die Atmel-Familie 
bekommst du unter 100,-€ auch das STK500, das bis auf den ATmega128 alle 
o.g. Typen direkt unterstüzt.
Für den ATmega128 brauchst du ein zusätzliches Board, das auf das STK500 
aufgesteckt wird. Die kleineren Controller genügen aber für den Anfang 
vollkommen.

Die Entwicklungssoftware bekommst du kostenlos bei Atmel und kann direkt 
mit Assembler arbeiten, als C-Compiler steht dir dann der freie GCC 
angepasst an diese Controller zur Verfügung.

Denke, die Einarbeitung in die theoretischen Materie begleitet durch 
praktische Versuche macht Spaß und nimmt dir die eventuell vorhandenen 
Hemmungen.

Das von Kollege avr genannte Tutorial für Assembler ist sehr 
empfehlenswert, für C steht dir hier später dann ja genug zur Verfügung.


Schönen Sonntag,
Gruß
Gunb

von g. b. (gunb)


Lesenswert?

Martin Müller schrieb:
> Andere Frage:
>
> Meint ihr auch, dass ich zu einer Gurkentruppe an Technikern gehöre??

Hör' einfach nicht drauf.

von Martin M. (silent_max)


Lesenswert?

Das STK500 habe ich ja schon über den Dozenten, den ich in 
Mikrocontrollertechnik habe, bestellt, damit ich zuhause üben kann. Er 
hat mir jedoch gesagt, dass ich nicht allzu viele verschieden 
Bücher/Skripte/Tutorials lesen sollte, da dass dann zuviel wäre.

Naja, wie ich das dann im Endeffekt machen werde, weiß ich noch nicht. 
Zumindest werd ich mich ziemlich reinkniggeln.

Dürfte ich dennoch einzelne, ganz spezielle Fragen hier posten?

Gruß

von g. b. (gunb)


Lesenswert?

Martin Müller schrieb:
> Das STK500 habe ich ja schon über den Dozenten, den ich in
> Mikrocontrollertechnik habe, bestellt, damit ich zuhause üben kann.

Na dann bist du ja bald hardwareseitig bestens gerüstet.

> Er
> hat mir jedoch gesagt, dass ich nicht allzu viele verschieden
> Bücher/Skripte/Tutorials lesen sollte, da dass dann zuviel wäre.

Kommt immer darauf an, wie und wo du einsteigst. Denke, ein Blick z.B. 
in das von Kollege avr genannte Skript schadet dir nicht wirklich, wie 
viel du pro Tag lernst, kannst du ja schliesslich selbst bestimmen.

> Naja, wie ich das dann im Endeffekt machen werde, weiß ich noch nicht.
> Zumindest werd ich mich ziemlich reinkniggeln.

Einfach mal ausprobieren. Learning by doing.

> Dürfte ich dennoch einzelne, ganz spezielle Fragen hier posten?
>
> Gruß

Würde mal sagen, dafür ist ein Forum da. Nur solltest du dich vielleicht 
vorher schon einmal mit dem konkreten Problem beschäftigt haben, damit 
die Leute dir auch helfen können und wollen.

Denke, in deinem Fall war nichts Falsches dabei, bist halt Anfänger.

Gruß
Gunb

von avr (Gast)


Lesenswert?

Martin Müller schrieb:
> Dürfte ich dennoch einzelne, ganz spezielle Fragen hier posten?

Sicher.

Aber bitte erst im Tutorial schauen und die Suchfunktion
verwenden. Vielles wurde schon beantwortet ;)

avr

von Daniel B. (dbuergin)


Lesenswert?

Mir hat das Buch "AVR Hardware und C-Programmierung in der Praxis" von
Florian Schäffer sehr viel geholfen.
ISBN: 978-3-89576-200-0

Gruss

Daniel

von oldmax (Gast)


Lesenswert?

Hi
Das die Techniker heute eine "Gurkengruppe" sind, kann und will ich nich 
so stehen lassen. Ok, die anfangs gestellten Fragen zeigen einen 
Wissensstand über µC im Bereich 0 und es ist schon verwunderlich, das im 
Zeitalter der PC's so wenig Grundlagen existieren.
Aber, nicht jeder hat die Chance oder das Interesse  gehabt, sich mit 
elektrischen oder elektronischen Basteleien einen Zugang zu dieser 
"Welt" zu schaffen. Die heutigen Anforderungen aber sind gewachsen, und 
nun rächt sich das auf eine gemeine Weise: nun muß dieser Stoff gelernt 
werden.
Wer wie ich aus der Elektronik kommt, hat's da etwas einfacher und wer 
obendrein auch noch Programme  schreibt, der merkt gar nicht, wie 
schwierig doch dieses gesamte Gebiet um einen µC ist.
Ein Techniker  muß sich obendrein auch noch mit ein  paar anderen 
"Nebensächlichkeiten" herumschlagen. Schließlich gibt's da diese 
fürchterlich neugierigen Personen am Tage "x".

Gruß und viel Glück
Oldmax

von Martin M. (silent_max)


Lesenswert?

@oldmax:

Was meinst Du mit "Tag "x""?? An der Stelle kann ich nur sagen, dass 
erst in 4 bis 5 Wochen die erste kleine Arbeit ansteht. Bloß mir gehts 
nicht darum, das Ganze auswendig zu können.

Bisher war ich ein einfacher Elektrikergeselle, der es mit der 
Verdrahtung von Autowaschstraßen und Portalanlagen zu tun hatte. Über 
Autowaschstraßen, Portalanlagen und allem drum herum kann ich Vieles 
erzählen, bloß mit µC, µP und deren Programmierung habe ich nur als 
Enduser insofern zu tun gehabt, dass ich z. B. meinen Laptop gestartet 
habe und mit Eagle, Multisim, usw. normale Schaltungen (mit ICs, 
Widerständen, Kondensatoren, usw.) entworfen habe.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Wenn Du einigermassen gut englisch kannst, sind die 
ATMEL-AVR-Datenblätter eigentlich selbsterklärend. So habe ich vor 6 
Jahren die AVRs kennengelernt. Auf www.atmel.com erfährt man alles, was 
in den Datenblättern nicht drin steht.

von Martin M. (silent_max)


Lesenswert?

Ich habe mir mal Datenblatt des ATmega8515, das dazugehörige Handbuch 
und das AVR-GCC Tutorial ausgedruckt, da der Typ in der Schule über 
C-Programmierung verwendet wird.

Mal gucken, ob ich dadurch schlauer werde...

Fragen werden wahrscheinlich kommen.

Gruß

von Martin M. (silent_max)


Lesenswert?

Hallo an die Gemeinde.

Für den Profiprogrammierer wird das Niveau jetzt in den Keller sinken, 
aber ich würde gern sicher gehen, ob ich es verstanden habe. Wie gesagt, 
ich bin Anfänger was die Programmierung von Mikrocontrollern angeht.

Ich möchte über den Taster-Port (PORT A) Informationen einlesen, die 
PORTB wieder ausgibt.

#include <avr/io.h>

int main(void)

{
  //---Initialisierung---

  DDRB=0xFF;               // PORTB wird als Ausgang deklariert

  DDRA=0x00;               // PORTA wird als Eingank deklariert

  //---Hauptprogramm-----

  while(1)
  {
    PORTB=PINA;    // Informationen von PINA wird an PORTB
                                    gereicht
  }

  return 0;
}

Ich hoffe, das stimmt so??

Danke im Voraus

von Loonix (Gast)


Lesenswert?

avr schrieb:
> Aber bitte erst im Tutorial schauen und die Suchfunktion
> verwenden. Vielles wurde schon beantwortet ;)

Spart euch doch diese Hinweise. Viele Fortgeschrittene freuen sich, dass 
sie ihr Wissen an Anfänger weitergeben können. Warum also das Forum zum 
Wiki umfunktionieren?

Martin Müller schrieb:
> Ich hoffe, das stimmt so??

Das Programm ist so in Ordnung, wenn auch (wie du selbst schon erkannt 
hast) etwas flach.

Viel Spaß noch!

von Sebastian -. (zettixzehner)


Lesenswert?

Ich habe auch mit einem STK 500 angefangen und als begleitendes Buch 
kann ich dir das Buch "AVR-RISC Embedded Software selbst entwickeln" von 
Roman Mittermayr empfehlen.

ISBN 978-3-7723-4107-6

Dieses Buch baut auf einem ATMega8 auf. Der sollte dir dazu dann nicht 
fehlen :)

Zudem ist auch das STK500 darin beschrieben sowie weitere 
Entwicklungsboards und unterschiedliche Entwicklungsumgebungen.

Viel spaß beim Einstieg!

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.