Forum: Mikrocontroller und Digitale Elektronik Wie beginne ich am besten zu Programmieren??


von Reinhard W. (reinki0013)


Lesenswert?

hallo zusammen,

also ich habe mir jetzt das stk500 zugelegt. darin befindet sich ein 
ATMEGA8515 und nun würde ich gerne etwas programmieren.

z.B. Led`s leuchten lassen wenn ich eine Taste drücke

wie gehe ich am besten vor??
oder hat jemand einen vorschlag wie ich es am besten lösen kann??

wie gesagt ich bin neu auf dem gebiet und bin für jede unterstützung 
dankbar.
ich habe mir das avr-turtorial schon angesehen, werd nicht ganz schlau 
daraus.


lg reinki

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

> ich habe mir das avr-turtorial schon angesehen,
> werd nicht ganz schlau daraus.

Konkrete Frage?

von Chris (Gast)


Lesenswert?

> z.B. Led`s leuchten lassen wenn ich eine Taste drücke

das ist zu hoch für nen Atmel 8-Bitter, da braucht es schon mindestens 
einen M16C.

Wie war das ?

duckundweg


Wie willst du denn programmieren ? In C oder Assembler ?

von Mr K. (mrk)


Lesenswert?

hab zwar den stk500 nicht aber ich würde dir empfehlen als erstes zu 
entscheiden welche Sprache (zb. asm, C ) und welchen compiler (AVR 
Studio, GCC) du verwenden willst.

Wenn die Entscheidung getroffen ist dann lade dir den compiler runter 
und stelle sie so ein das er mit den stk500 kommunizieren kann(mit AVR 
Studio sollte das kein prob. sein).
Wenn auch das getan ist dann fange an zu programmieren (LEDs leuchten 
lassen, taster abfragen und reagieren). Es gibt auch tutorials wenn du 
die Sprache nicht kannst.

Oder wo ist das Problem?

von Reinhard W. (reinki0013)


Lesenswert?

ja also ich habe mir auch zusätzlich noch das aufsteckboard
stk501 dazugekauft.

habe das jetzt mal drauf gesteckt. nun habe ich bereits das avr-studio 
runter geladen und einen JTAG-ICE MKII habe ich auch.

prozessor ist ein ATMEGA12816AU drinnen.

so und jetzt würde ich gerne beginnen, aber wie am besten??

also ich kann schon ziemlich gut programmieren, in c++ halt, aber c is 
ja ähnlich.

von Roland (Gast)


Lesenswert?

Verstehe ich das richtig? Du kannst schon ziemlich gut programmieren, 
aber weisst nicht wie du am besten beginnen sollst zu programmieren? 
Hää?

von Reinhard W. (reinki0013)


Lesenswert?

ich meinte damit das ich im moment einen c++ programmierkurs mache,
und da kenne ich mich schon aus. consolen anwendungen programmieren usw.

nichts mit mikrocontroller, das ist ja genau mein problem.

verstehst??

von Roland (Gast)


Lesenswert?

Nöö, verstehe ich nicht. Lese dich durch das Tutorial durch, da steht 
alles Schritt für Schritt beschrieben. Ich wüsste nicht was es da nicht 
zu verstehen gäbe..

von Reinhard W. (reinki0013)


Lesenswert?

Roland wrote:
> Nöö, verstehe ich nicht. Lese dich durch das Tutorial durch, da steht
> alles Schritt für Schritt beschrieben. Ich wüsste nicht was es da nicht
> zu verstehen gäbe..

genau wegen solchen antworten hab ich mir gedacht das ich am besten gar 
kein neues thema eröffne. danke für deine hilfreiche antwort.

von Patrick (Gast)


Lesenswert?

Überleg Dir erst mal in Ruhe, was Du genau machen willst. Dann lies die 
entsprechenden Kapitel im Tutorial (ich weiss, hast Du schon). Wenn dann 
konkrete Fragen auftauchen, dann stell sie hier im Forum.

Hast Du denn schon eine Entwicklungsumgebung (Texteditor, Compiler, 
Debugger etc.)?

von gast (Gast)


Lesenswert?

Falls Du die interne Struktur eines µC noch nie betrachtet hast, so 
solltest Du dies als aller erstes tun (... noch bevor Du irgendwas 
installierst, zusammensteckst und einschaltest..)

Am besten hier auf der Seite das AVR-Tutorial (Assembler/Hardware) 
durcharbeiten und theoretisch verstehen und erst danach die ersten 
Schritte in C versuchen. Denn anders als auf dem PC solltest (muss) Du 
bei jedem µC wissen wie er intern in etwa arbeitet bzw. wie die Register 
angesprochen und konfiguriert werden. Die lernst Du halt am besten, wenn 
Du die ersten Schritte in Assembler machst, auch wenn es nur das 
Schalten einer LED ist !!!

von Chris (Gast)


Lesenswert?

Schau dir eben mal das Datenblatt an und vergleiche mit dem Tutorial, 
damit du weisst, was du im Controller machst. Dann wird irgendwann alles 
plötzlich ganz easy und durchsichtig ...

von Bruno (Gast)


Lesenswert?

Du mußt erstmal verstehen wie so ein Teil funzt (zumindest teilweise). 
Dafür würde ich das Tut hier auf der Seite durcharbeiten. Kann mir gut 
vorstellen wo deine Probleme sind. Am Anfang fehlte mir auch das 
Verständnis wie ich mit meinen C-Anweisungen ein Pin vom Controller 
toggeln konnte. Das wird über die Inlude-Dateien geregelt. Diese sind 
Prozessorspezifisch und jeder µC hat da ne eigene Datei. Aber wie 
gesagt, Tut durcharbeiten und dir vllcht ein Buch über das Thema 
zulegen. Über Atmel gibt es da recht gute.

von juppi (Gast)


Lesenswert?

hallo
@Reinhard W. (reinki0013)

Verliere nicht gleich den Mut.Am Anfang sieht alles dureinander aus.
Es gibt auch Andere.
Solche Antworten geben nur "Experten",
welche niemals Anfänger waren.

"Der Weg ist das Ziel"

gruß
juppi

von Tim (Gast)


Lesenswert?

Lad dir die Demo von Bascom runter und sieh dir die Beispiele an, die 
dabei sind.
Ist wohl das einfachste und man muss nicht wissen wie der µC aufgebaut 
ist.

von Matthias L. (Gast)


Lesenswert?

>Ist wohl das einfachste und man muss nicht wissen wie der µC aufgebaut
>ist.

Das ist natürlich immer gut. Man weiß nicht warum das zusammenkopierte 
Programm geht, aber es geht ja....
Ts Ts Ts...


>Lad dir die Demo von Bascom runter
Wenn du noch entscheiden tust, welche Programmiersprache du nehmen 
willst, dann nimm ASM und C. Kann man beide, ist das von Vorteil. Bascom 
kannst du ruhig weglassen.

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Reinhard W. wrote:
> hallo zusammen,
>
> also ich habe mir jetzt das stk500 zugelegt. darin befindet sich ein
> ATMEGA8515 und nun würde ich gerne etwas programmieren.
>
> z.B. Led`s leuchten lassen wenn ich eine Taste drücke
>
> wie gehe ich am besten vor??
> oder hat jemand einen vorschlag wie ich es am besten lösen kann??
>
> wie gesagt ich bin neu auf dem gebiet und bin für jede unterstützung
> dankbar.
> ich habe mir das avr-turtorial schon angesehen, werd nicht ganz schlau
> daraus.
>
>
> lg reinki


1/ Entscheiden welche Programmiersprache es werden soll. A(ssembler), 
B(asic) oder C. Mit C++ Vorkenntnissen oder Kurs ist vielleicht C nicht 
übel.

2/ Toolchain für die Sprache installieren. Unter Windows für C gerne 
genommen wird WinAVR als Spezialversion des AVR-GCC. AVR-GCC gibt es 
auch für Linux und Max OSX. Unter Windows zusätzlich zum WinAVR gerne 
genommen AVR Studio als Editor und Simulator/Debugger.

3/ Toolchain zum Laufen bringen. Dieses kleinste Leerprogramm MUSS ohne 
Fehler zu einem Programm führen und auf den AVR gebracht werden können.
1
int main(void)
2
{
3
  while(1);
4
}

4/ do { Beispielcode suchen z.B. aus AVR GCC Tutorial. Und 
Datenblatt lesen. Zum Laufen bringen und Freuen. Und Datenblatt lesen. 
Alternativ wundern, weils nicht läuft. Und Datenblatt lesen. In beiden 
Fällen sich oder andere fragen, wieso es funktioniert. Und Datenblatt 
lesen. Code anpassen oder neu entwerfen.} while (1);

von Mr K. (mrk)


Lesenswert?

nicht gleich aufgeben oder verzweifeln wenn man nicht alles sofort 
versteht oder etwas nicht so oder überhaupt nicht funktioniert wie man 
sich vorgestellt hat.

erwarte nicht das du in einem tag sofort in die uC welt sofort 
durchstarten kannst.
Du musst noch viel lesen/lernen und ganz oft an deinem vorhaben 
scheitern und immer wieder neu versuchen.
An Datenblätter führt nix vorbei, lade sie dir vom Atmel runter und lese 
sie.

von Gerhard. (Gast)


Lesenswert?

Hallo Reinghard,

Wenn es hilft, hier ist auch meine Geschichte:

Habe 2000 meine erste Beruehrung mit PIC Micros gehabt. Damals gang es 
mir vielleicht genau wie Dir. In der Firma habe ich dann eine kleine PIC 
Steuerplatine mit dem 16F877 gefunden und das Original C Program. Habe 
dann angefangen mich durch den Quellcode durchzuarbeiten. Installierte 
dann den Compiler um selber damit experimentieren zu koennen. Von C 
wusste ich damals noch nicht zu viel. Das Datenblatt hat mir beim 
Studium des Programs sehr geholfen. Dann fing ich an mit dem Programm zu 
experimentieren und wenn was nicht ging, das warum herauszufinden. Als 
ich etwas mehr Vertrauen zur ganzen Sache hatte, fang ich an mit den 
anderen Peripherien zu arbeiten (TIMER, I2C, SPI). Auf einmal ging es 
dann ganz gut und es hat riesig Spass gemacht damit zu arbeiten. Bald 
hat sich dann ein LCD Display, DS1307, EEPROM, IO Expander und andere 
externe ICS dazu gesellt. Damit konnte man schon viel machen. Spaeter 
habe ich mir auch den AVR (ATMEGA32) und Codevison/WINAVR vorgeknuepft.

Wie schon vorgeschlagen, lass Dich nicht runterkriegen. Sicherlich, 
manchmal glaubt man es geht einfach nicht weiter. Aber mit der Zeit 
findet sich immer eine Loesung. Sobald man hinter den ersten 
Anfangshuerden ist, lassen sich viele Problem relativ leicht loesen und 
es ist wirklich nicht so kompliziert wie es am Anfang aussieht. Man 
sollte auch moeglichst viel guten Quellcode studieren, damit man einen 
gewissen Ueberblick bekommt, wie praktische Programme ausgefuehrt sind. 
Bei Mikros muss ja immer viel Hardware initialisiert werden. Wenn man 
das dann beherrscht ist der Rest nicht mehr so schwierig.

Arbeite Dich mal durch die Seiten vom Martin Thomas durch: 
http://www.siwawi.arubi.uni-kl.de/avr_projects/

Dort findest Du viel guten Beispielcode. Auch hier im Forum ist sehr 
viel guter Beispielcode zu finden. Hier im Forum findest Du bestimmt 
viele brauchbare Antworten und Vorschlaege und auch Loesungen zu 
Problemen. Das Internet ist auch eine grosse Fundgrube.

Sehr hilfreich ist es auch wenn Du einen Freund hast/findest, der auch 
am Microcontroller lernen interessiert ist. Das Diskutieren und zusammen 
Probleme loesen ist viel leichter als wenn man ganz alleine auf sich 
angewiesen ist.

Gruss,
Gerhard

von juppi (Gast)


Lesenswert?

@Gerhard. (Gast)

Nichts hinzuzufügen

Gruß

von Lötkünstler (Gast)


Lesenswert?

Wie wenn sich zwei Igel lieben.

**********Ganz vorsichtig************

Ansonsten Einsteigerprojekte ausgooglen und durcharbeiten.

Lötkünstler

<Mit der Lizenz zum löten>

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.