4. Das erste Programm & Übertragung zum Microcontroller

Anleitungen für "hausgemachte" LED Projekte

Moderator: T.Hoffmann

Benutzeravatar
Pehu
Mega-User
Mega-User
Beiträge: 469
Registriert: Mi, 01.11.06, 19:33
Kontaktdaten:

Sa, 06.01.07, 18:40

So, nach dem die Verbindung zum Board/Microcontroller funktioniert. Können wir uns dem Schreiben eines eigenen Programms widmen.

Erstellung eines eigenen Programms mit „Bascom“

Wir starten unser Programm „Bascom“ über Start, Programme, BASCOM-AVR, BASCOM-AVR.

Danach solltet ihr das Programm vor euch haben und wir klicken auf das „New“ Button:
1014_bascom8_1.jpg
Jetzt solltet ihr eine leere Seite erhalten:
1014_bascom4_1.jpg
In diese leere Seite könnt ihr euer Programm/Code reinschreiben. In einem seperaten Tutorial wird das untere Programm/Code und die einzelne Befehle besprochen. Wer auch das gleiche Board von Pollin verwendet, kann den Code unten übernehmen:
1014_bascom5_1.jpg
Als nächstes lassen wir die Überprüfung durchlaufen, indem wir dieses Icon anklicken.
1014_bascom7_1.jpg
Da wir unser Programm/Code noch nicht gespeichert haben. Wird er jetzt danach fragen, wo wir unser Programm/Code hinspeichern soll.
Wir wählen unseren gewünschten Pfad aus und geben ihm einen Namen. Ich habe es einfach „tut1“ genannt.

Sollte alles stimmen erhalten wir keine Fehlermeldung zurück bzw. es taucht unten kein neues Fenster mit der Auflistung der Fehlern im Code auf.
Nach dem unser Programm/Code die Überprüfung überstanden hat, können wir unser Programm/Code kompilieren lassen. Auf Klartext: das Programm (Bascom) übersetzt unser Programm/Code in die Maschinencode-Sprache.
Dazu klicken wir auf dieses Icon:
1014_bascom12_1.jpg

Sollte keine Fehlermeldung auftauchen, wurde es erfolgreich kompiliert.
Wenn wir nun einen Blick in den Pfad werfen, welchen wir vorhin für unser Programm/Code ausgewählt haben, sollte folgende Dateien drin sein:
1014_bascom9_1.jpg
1014_bascom9_1.jpg (5.67 KiB) 36054 mal betrachtet
Die „tut1.bas“ ist die Datei, die unser Programm/Code in lesbarer Form enthält, also sprich das was wir vorhin in Bascom eingegeben haben.

Die „TUT1.BIN“ ist die kompilierte Datei mit unserem Programm/Code in „Maschinencodesprache“ bzw. „Microcontrollersprache“. Diese Datei müssen wir zum Microcontroller übertragen bzw. bespielen.

Programm zum Microcontroller übertragen

Wir öffnen unser PonyProg2000. In der oberen rechten Ecke sollte unser Microcontrollertyp stehen. Wenn nicht dann abändern.
Dann klicken wir auf das Icon öffnen:
1014_pony11_1.jpg
In dem Fenster wählen wir die gewünschte Datei die zum Microcontroller übertragen werden soll. In unserem Beispiel die „TUT1.BIN“.

So nachdem öffnen, sehen wir lauter komische Zahlen. Das ist unser Programm/Code in „Microntrollersprache“.

Wir klicken auf dieses Icon (Write Program Memory Flash):
1014_pony13_1.jpg
Es taucht eine Meldung mit dem Hinweis, dass der jetzige Inhalt des Microcontrollers überschrieben wird:
1014_pony14_1.jpg
1014_pony14_1.jpg (7.84 KiB) 36058 mal betrachtet
Wir bestätigen mit „Yes“. Dann warten wir bis es durchgelaufen ist, es sollte dann die Meldung „Write Successful“ kommen.

Wenn die Meldung „Write Successful“ kommt wurde unser Programm erfolgreich zum Microcontroller übertragen und der Microcontroller spielt unser Programm ab!
In diesem Fall, sollte jetzt die Led1 und Led2 auf dem Board hin und her blinken.

Jo, das wäre dann geschafft. :D :D :D
Benutzeravatar
Ilker21
Hyper-User
Hyper-User
Beiträge: 1039
Registriert: So, 05.11.06, 12:19
Wohnort: Fürth
Kontaktdaten:

Sa, 06.01.07, 18:45

:D

pehu unser großer meister keiner hätte es besser erklären können


warte schon auf die codes zum programmieren
Benutzeravatar
Pehu
Mega-User
Mega-User
Beiträge: 469
Registriert: Mi, 01.11.06, 19:33
Kontaktdaten:

Sa, 06.01.07, 18:54

Hab am Anfang nicht gewusst, worauf ich mich angelassen habe. :wink:

Dachte, es wäre schnell erklärt und jetzt ist es schon das 4. Thema. :D
Für heute reicht es, mal gucken vielleicht finde ich morgen Zeit, um es fortzusetzen. :wink:

Es wird vielleicht langsam sinnvoll eine extra Rubrik "Microcontroller" oder "Microcontrolling" zu erstellen. :o
pehu unser großer meister keiner hätte es besser erklären können
Ich bevorzuge das Wort "Gott". Pehu unser Gott. :lol: Nee, Spass bei Seite. :wink:
Benutzeravatar
Ilker21
Hyper-User
Hyper-User
Beiträge: 1039
Registriert: So, 05.11.06, 12:19
Wohnort: Fürth
Kontaktdaten:

Sa, 06.01.07, 19:04

Pehu unser Gott ^^ :mrgreen:

wäre sinnvoll ne extra Rubrik weil das gebiet hat ja noch sehr viel mehr :P

hast du vll noch paar links wo man sich codes und sowas anschaun könnte ?
Benutzeravatar
alexStyles
Auserwählter
Auserwählter
Beiträge: 2333
Registriert: So, 20.08.06, 16:51
Wohnort: Düsseldorf
Kontaktdaten:

So, 07.01.07, 06:49

Also Pehu Ich denk das kann Ich im Namen aller sagen ...
DANKE dir ersteinmal für alle dise "Tutorials" :D
Habe die 4 auch ersteinmal gespeichert 8)
Du sagtest du wirst "Noch" mehr einstellen oder noch mindestens eins ?
Bin schon gespannt :D
MfG Alex

PS: Was nun Meister oder Gott :mrgreen: Ich habe damit angefangen mit Meister Mh GOtt ist besser?? :oops: :mrgreen: :mrgreen: :mrgreen:
Jannes M-Sp
Mega-User
Mega-User
Beiträge: 113
Registriert: Mo, 06.11.06, 19:28
Wohnort: S-H
Kontaktdaten:

Mo, 08.01.07, 12:39

Wenn jemand Fragen zu AVR Studio 4 hat. Ich bin gerne behilflich! :wink:
Benutzeravatar
Fightclub
Post-Hero
Post-Hero
Beiträge: 5114
Registriert: Mi, 01.03.06, 18:40

Mo, 08.01.07, 13:11

@Pehu: WOW. Echt genial deine Reihe über die Microcontroller. Ich werde mir nochmal was überlegen wie man das ganze zusammenfassen kann ;), aber erstmal gibts dafür 800 credits (200 für jedes Topic). Wirklich super Arbeit!
Benutzeravatar
Neo
Auserwählter
Auserwählter
Beiträge: 2631
Registriert: Fr, 25.02.05, 23:22
Wohnort: hessen-wisbaden
Kontaktdaten:

Mo, 08.01.07, 13:17

WOW. Echt genial deine Reihe über die Microcontroller
ich sehe das übrigens Genauso (soll jetzt kein geschleime sein ^^)

ich werde nächste Woche bei pollin bestellen und Mal anfangen zu Experimentiren
dabei wird mir das ihr sicher sehr helfen
Benutzeravatar
Doc_McCoy
Hyper-User
Hyper-User
Beiträge: 1962
Registriert: Sa, 03.06.06, 15:49
Wohnort: Neualbenreuth
Kontaktdaten:

Mo, 08.01.07, 17:46

Ja, wie siehts jetzt mit unser extra Rubrik Microcontroller im Forum aus??
Bekommen wir jetzt eine Ecke? :) :)

Würde mich auf jedenfall darüber freuen, da die Tutorials von pehu wenigstens dann an einem richtigen Ort im Forum liegen und die anderen Themen, wie z.B.: PWM, Lauflichtschaltungen, allmöglichen Begriffe von Microcontroller auch oft schlecht unter andere Rubriken passen!
Benutzeravatar
Pehu
Mega-User
Mega-User
Beiträge: 469
Registriert: Mi, 01.11.06, 19:33
Kontaktdaten:

Mo, 08.01.07, 17:47

Dankeschön Fightclub für die Credits. :D
Würde vorschlagen eine extra Rubrik "Microcontroller" zu ereröffnen und die Tutorials ganz oben anzeigen lassen.
Denn ich werde noch mind. 3 Tutorials schreiben. :wink:
Hab selber den Umfang am Anfang unterschätzt. :roll:
Benutzeravatar
Fightclub
Post-Hero
Post-Hero
Beiträge: 5114
Registriert: Mi, 01.03.06, 18:40

Mo, 08.01.07, 17:52

@pehu & doc: ich hät ja auch gern sone ecke, aber ich kann sowas leider nicht einrichten, da müssten wir dann mal den chris für belatschen, könntet ihr euch noch vielleicht bis ende des monats vertrösten? Denn dann dürften die Lumitronixler allen Stress erstmal überwunden haben (hoffentlich). Solange liegen die Tutorials ja noch ganz gut und ich verspreche hoch und heilig dann alles dahinzuverschieben :)
Andy
Hyper-User
Hyper-User
Beiträge: 1284
Registriert: Mi, 17.05.06, 13:03

Di, 09.01.07, 21:16

FRAGE!

Für welchen yC hast du denn das Proggy geschrieben?

Welchen Controller sollte man für das Programm vorab wählen?...denn man hat da ja nun mehrere möglichkeiten.

z.B. ein ATtiny 12 oder 15 würde da wohl nicht gehen oder doch?
Benutzeravatar
Pehu
Mega-User
Mega-User
Beiträge: 469
Registriert: Mi, 01.11.06, 19:33
Kontaktdaten:

Di, 09.01.07, 22:01

@Andy Guter Hinweis. Schreibe ich in Tut rein. Danke!

Für Atmega8. Aber Atega16/32 und Attiny 2313 dürften auch gehen.

Aber ich hab mich nicht nach einem Microcontrollertyp gerichtet, sondern nach dem Pollin-Board.

Denn die Leds hängen an PD5, PD6 und Taster an PD2, PD3, PD4.

Attiny 12/15 gehen leider nicht. Da sie nicht über diese Ports verfügen...
Andy
Hyper-User
Hyper-User
Beiträge: 1284
Registriert: Mi, 17.05.06, 13:03

Di, 09.01.07, 22:13

Hehehehe...hatte ich mir fast so Gedacht... lol .... aber diese Frage stand auch für andere User , die mit soetwas noch überhaupt keine Ahnung haben und vor dem ganzen wie ein Ochse vor´m Berg stehen und somit überfordert wären....bitte nicht falsch Verstehen.

Aber super... prompte Antworten...fein Danke.
KB
Super-User
Super-User
Beiträge: 92
Registriert: Fr, 15.09.06, 21:37
Kontaktdaten:

Di, 09.01.07, 23:24

@Pehu deine Serie von Tutorials sind recht gut geworden auch wenn ich mehr über ASM vermisse. :-)

Bei so kleinen Controllern wie den Tiny12/13/15 hat man das eine Problem das man wenig Speicher zur Verfügung hat und somit der speicher schnell voll sein kann bei Bascom/C für sollche kleinen µC eignet sich meiner Meinung nach Assembler.
Ich hab über Weihnachten mit dem Tiny13 ein RGB-Fader programmiert wo man mit Hilfe eines Potis die Durchlaufszeit einstellen kann. Und das testprogramm mit dem Poti war nichts anderes als ein Blinklicht wo sich die frequenz per Poti einstellen lässt. Somit sollte man das Programm von Pehu ändern können und einfach I/O PB0 - PB4 nehmen

Aber für Anfänger und einfache Programme ist Bascom denke ich mal super geeignet. Aber wenn es mal an Zeitkritische Dinge geht kommt man um Assembler nicht rum. Und das wichtigste ist immer probieren und sich Code schnippsel anzuschauen und zu verstehen so hab ichs am anfang auch gemacht aber halt mit Assembler.

MfG Kai und viel Spaß beim probieren
Andy
Hyper-User
Hyper-User
Beiträge: 1284
Registriert: Mi, 17.05.06, 13:03

Di, 09.01.07, 23:33

@KB

Also wenn du meine Meinung wissen möchtest.... finde die Idee auch garnicht mal so schlecht...
Vorschlag:
PEHU macht in Bascom sein TUT weiter und du schreibst eines über Assembler und co mit allen wichtigen Details...
Dann wäre allen Ansprüchen genüge getan und die User könnten somit 2 Gleisig Fahren und Experimentieren... fänd ich super.
Benutzeravatar
Pehu
Mega-User
Mega-User
Beiträge: 469
Registriert: Mi, 01.11.06, 19:33
Kontaktdaten:

Mi, 10.01.07, 06:59

@KB Ja, da stimme ich dir voll zu. Mit Assembler kann man viel Hardwarenaher programmieren....

@Andy Cool Idee. :wink: Möchte auch mal getragen werden bzw. mal von Jemandem was lernen. :wink:
Andy
Hyper-User
Hyper-User
Beiträge: 1284
Registriert: Mi, 17.05.06, 13:03

Mi, 10.01.07, 17:04

So leuds....
Habe mir bei Pollin jetzt auch das Board und diverse Controller Bestellt um meine alten Kenntnisse mal wieder auf zu frischen.
Hatte ja auch Geschrieben, das ich, wenn wir dafür ne eigene Ecke bekommen sollten, auch meine Erfahrungen diesbezüglich mal Posten würde... kann dann ja auch jetzt, wenn mein Board da ist, noch viiiieeel mehr dazu schreiben.
Meine Derzeitigen Erfahrungen basieren allerdings eher auf der GAL Programierung ...aber vom Grundprinzip isses das selbe.
Benutzeravatar
alexStyles
Auserwählter
Auserwählter
Beiträge: 2333
Registriert: So, 20.08.06, 16:51
Wohnort: Düsseldorf
Kontaktdaten:

Mi, 10.01.07, 17:06

*gg*
Na wer zu spät kommt der bekommt kein Board mehr weil wir sie dann alle ausverkauft haben :lol:
Wir müssen mal irgendwann einen Thread aufmachen in Allgemeines oder Small Talk der da heisst
Wer hat was fürs Mikrocontrolling bei Pollin bestellt :mrgreen:
Ich wäre mla gespannt drauf wieviele Boards dann tatsächlich auf Lumitronix Foren User Konten gingen :D
MfG Alex
Benutzeravatar
Pehu
Mega-User
Mega-User
Beiträge: 469
Registriert: Mi, 01.11.06, 19:33
Kontaktdaten:

Mi, 10.01.07, 18:50

Wenn Ihr nichts dagegen habt, könnt Ihr mir vielleicht eure Kundennummer per PM mir mitteilen?

Vielleicht kann ich die Firma Pollin überzeugen, dass ich Dank meiner Tutorials ein paar neue Pollin-Kunden beworben habe und dann vielleicht ein kleines Geschenk kriege. :o :wink:
Andy
Hyper-User
Hyper-User
Beiträge: 1284
Registriert: Mi, 17.05.06, 13:03

Mi, 10.01.07, 18:56

Hehehehe...tut mir leid...ich bin Stammkunde bei Pollin...also is nix mit Neukunde... :wink:
Benutzeravatar
Neo
Auserwählter
Auserwählter
Beiträge: 2631
Registriert: Fr, 25.02.05, 23:22
Wohnort: hessen-wisbaden
Kontaktdaten:

Mi, 17.01.07, 22:39

ich hab alles so gemacht wie im tut aber die LED 1 leuchtet nur
wen ich auf Reset clike geht sie aus abs sonst passiert nichts :cry:

aber ich benutze ein attiny2313 muss ich da jetzt was anderes machen ?
Benutzeravatar
alexStyles
Auserwählter
Auserwählter
Beiträge: 2333
Registriert: So, 20.08.06, 16:51
Wohnort: Düsseldorf
Kontaktdaten:

Mi, 17.01.07, 22:43

Sowiet Ich weiss OBEN in der ersten Zeile $regfile = "m8def.dat" <---- das steht für den ATmega8...
soweit Ich das verstanden habe aus den Tuts :P
Aber was du bei einem ATtiny2313 eingeben musst kann Ich dir auch nciht sagen :?
Auch musst du vielleicht auf dem Board noch sachen "einstellen"...also mit den Jumpern Da kann Ich dir auch (noch) nicht weiterhelfen habe mein erste Programm noch net probiert bzw. noch nicht probiert zu programmieren und es aufs Board zu übertragen

MfG Alex
Benutzeravatar
Neo
Auserwählter
Auserwählter
Beiträge: 2631
Registriert: Fr, 25.02.05, 23:22
Wohnort: hessen-wisbaden
Kontaktdaten:

Mi, 17.01.07, 22:52

ja da steht bei mir natürleich m32def.dat :wink:
Antworten