PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : AVR-Programmiersprache



Christoph2
01.04.2006, 15:19
Hallo!
Ich habe vor mir in nächster zeit das RN-Control Board zu kaufen, und kann aber noch nicht programmieren (bin ein totaler noob).
die rn control kann man ja in vielen programmiersprachen brogrammieren, zb assembler, basic, c, pascal,...und ich wollt fragen was ihr findet was die einfachste ist, ich will mir nämlich ein buch kaufen über eine dieser programmiersprachen und mich einstweilen (bis ich die rn control habe) ein bisschen damit beschäftigen

EDIT: Kann man die rn control auch als bausatz kaufen, bei robotikhardware gibt es sie nämlich nur als fertig aufgebaut?

CowZ
01.04.2006, 15:23
Ich persönlich empfehle dir Assembler. Damit lernst du, was der Controller wirklich macht. Allerdings erfordert das auch einigermaßen gutes logisches Denken, aber wenn's dir daran fehlt, wirst du auch mit anderen Programmiersprachen nicht besonders gut klar kommen.

@Buch kaufen: Warum? Es gibt genügend Tutorials. Gut erklärt u.a. hier:
http://www.mikrocontroller.net/tutorial

Gruß, CowZ
PS: Ich code auch nur in Assembler. Ist einfach besser ^^ Aber dazu gibt es bekanntlich viele Meinungen.

askazo
01.04.2006, 17:38
Tja, wir CowZ schon schreibt, das ist eine Glaubensfrage - Du wirst hier wohl ziemlich viele verschiedene Antworten bekommen.

Ich würde z.B. niemals zu Assembler raten. Es ist sicherlich ok, wenn man die Grundlagen davon kennt und somit auch ungefähr weiß, wie ein Controller intern arbeitet. Aber einfach finde ich Assembler nicht unbedingt, vor allem, wenn's um komplexere Steuerungsaufgaben geht. Zudem macht man sich einigermassen vom Controller abhängig, da jede Controller-Familie ihren eigenen Befehlsschatz hat. (hiermit stoße ich jetzt bestimmt wieder eine heiße Diskussion bei den Assembler-Fans an...)

Ich persönlich würde Dir zu C raten, vor allem deswegen, weil es eine Sprache ist, die in der Industrie meistens zur Mikrocontrollerprogrammierung eingesetzt wird. Wenn Du später beruflich auch was in der Richtung machen willst, hast Du dadurch schonmal einen großen Wissensvorteil.

Wenn's Dir nur um die einfachheit geht, ist sicherlich Bascom das Richtige für Dich. Ich kann zwar selber kein Bascom, aber was ich bisher so davon gelesen/gehört habe, ist es eine sehr leicht zu erlernende Sprache.

Gruß,
askazo

Christoph2
01.04.2006, 17:46
von delphi hab ich auch schon einiges gehört, unter anderem, dass es sehr einfach sein soll
kann man damit ein programm schreiben und mit ponyprog auf das pn control board spielen?

techboy
01.04.2006, 17:51
Assembler ist wohl die Hardwarenaheste Sprache die es gibt allerdings ist sie sehr schwer zu erlernen...Ich würde dir also davon abraten weil es meiner Ansicht nach für den Anfang zu viel ist...

Also ich selber hab mit Bascom angefangen...Bascom ist eine sehr leicht zu erlernende Sprache ( www.rowalt.de ). Allerdings bin ich dann auf C umgestiegen weil es Hardwarenäher ist und weil ,wie askazo schon angesprochen hat C eine Weltprogrammiersprache ist die dir in deinem weiteren Leben behilflich sein kann... Um in C einzusteigen brauchst du WinAVR , das ist kostenlos und kann in AVRStudio als plugin installiert werden wenn du auch einen Simulator in deiner IDE haben willst. C ist vielleicht etwas schwieriger zu erlernen, allerdings hast du damit eine gute Grundlage... Hier das wohl beliebteste C Tutorial für AVR:
http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial

Hoffe ich hab dir weiter geholfen...

techboy
01.04.2006, 17:52
Delphi kannst glaub ich vergessen... das ist zu Objektorientiert bzw. der Quellcode ist zu groß...ausserdem brauchst da noch nen Compiler...

Mfg.Attila Földes

Superhirn
01.04.2006, 18:48
Ich würd auch C nehmen. ich verwende es auch. Geht außderdem wenn du schon irgendwann mal etwas programmiert hast (js, php, vb, vbs, und auch html.....) ist es ganz leicht. habs selbst in 2monaten in der bauzeit meines wettbewerbsroboters gelernt und hab somit in 2monate inkl roboterbau geschafft, einen tollen roboter zu bauen für die robotchallenge.

Bascom ist einfach. das stimmt. doch nachdem es ja nicht gratis ist(4kb begrenzung), bin ich gleuch direkt auf C umgestiegen und ging ja auch gut.

ASM ist sicher ganz gut wenn es um zeitkritische programme geht. aber wenn die herstellzeit der programme auch "zeitkritisch" ist ;-) würd ich C empfehlen.

ruediw
01.04.2006, 19:14
@Christoph2:

Wie einer der Vorposter bemerkt hat, kannst Du Delphi vergessen:
1.Ist es nur auf uP der 86-er Serie lauffähig.

Aber es gibt Pascal-Compiler (Delphi ist ein erweitertes Pascal)
für verschiedene uC. Und wenn Du vorher noch nicht programmiert hast, so kann ich Dir Pascal zum Einstieg sehr empfehlen.

Später kannst Du wenn Du willst (oder musst weil es keinen Pascal-Compiler für denen uC gibt) immer noch zusätzlich C lernen.
Von Assembler rate ich Dir ab wenn Du vorher noch nicht programmiert hast und deine Kentnisse der Elektronik und der uC
bescheiden sind. Und Wenn Du einen anderen uC wählst musst Du sofort einen anderen Assembler lernen.

CowZ
01.04.2006, 20:34
Noch eine Anmerkung zum Thema von mir:

Wenn du vorher schon programmiert hast, nehm doch das, was du kannst. Entweder du kannst einen Basic-Dialekt, dann nimmst du Bascom, oder du kannst einen C-Dialekt, dann nimmst du eben C.

Assembler ist imho relativ leicht zu erlernen, da man eben nur wenige Befehle können muss. Dazu braucht man dann aber viel logisches Denken um diese Befehle zu verbinden.

Gruß, CowZ

Christoph2
02.04.2006, 09:31
hallo!
danke für die zahlreichen antworten.
ich bin jetzt bei der entscheidung zwischen bascom und c.

wenn ich mit c ein programm schreibe, kann ich es dann mit ponyprog auf die pn control spielen, oder brauche ich da noch ein zusätzliches programm?

wo kann man sich c downloaden?

Superhirn
02.04.2006, 10:18
C bekommst du am besten auf winavr.sourceforge.net

Das ist ein komplettes programmpaket mit programmers notepad(codeeditor mit syntax highliting), gcc (dem compiler der aus C die hex macht) und sogar avrdude (zum proggen aus pn heraus).......

Oder du nimmst das aktuelle avrstudio von Atmel. das hat das Gcc plugin jetzt schon drinnen und übernimmt dir den kram mit makefile und so und hat eingebauten simulator.

ich steh jedoch auf winavr denn da kann ich codeblöcke auf der seite mit eienr minustaste zusammenklappen und dann wird ein großer code übersichtlicher.

Christoph2
02.04.2006, 10:36
ich hab das jetzt gesaugt, und da gibts 3 anwendungen:

programmers notepad
AVR insight
Mfile

Ich nehme einmal an dass ich das programm in programmers notepad schreibe, es mit AVR insight in eine hex datei verwandle, und dann mit ponyprog auf die pn control spiele.

stimmt das?

wozu ist Mfile?

Superhirn
02.04.2006, 10:54
Nein!

u schreibst in programmers notepad die datei. Mfile hat eine vorgefertigte makefile drinnen die du dir anpasst und dann im ordner deiner c-datei speicherst. dann gehst in pn auf make. dann make programm und es wird in den avr geschickt. evt. vorher noch make clean anklicken damit alle alten dateinen gelöscht werden.

bei mir gehts jedenfalls leider nicht so. makefile/make error in studio und on. leider somit musste ich es genau selbst ohne makefilehilfe einstellen.

Christoph2
03.04.2006, 19:32
Hallo!

Kennt jemand das buch : C Programmieren von Anfang an (Erlenkötter Helmut)?

Das soll angeblich sehr gut für anfänger sein, aber wird dort die programmierung von zb einer mega 8 erklärt oder eher sowas softwaremäßiges ganz ohne hardware?

izaseba
03.04.2006, 19:41
Hallo,
Das Buch heißt ja "C programmieren von Anfang an" und nicht "Microcontroller programmieren von Anfang an".
Es ist eine gute Lektüre, wenn man C erlernen will, es ist auch ein normaler Weg, eine Sprache an sich zu erlernen, und dann später irgendwelche "Dialekte".

Fazit:
Willst Du C lernen fang mit dem Buch und einem kostenlosen C Kompiler an.
Wenn Du das einigermassen dann drin hast, kannst Du Dein Wissen bei Mikrocontrollern einsetzen.
Wenn Du ungeduldig bist, und sofort durchstarten willst, dann fang garnicht
erst mit C an, nimm dann lieber Basic.

Gruß Sebastian

teslanikola
03.04.2006, 22:30
Also ich würde dir wirklich zu assembler raten, auch wenn viele sagen das es schwer ist, das stimmt aber nicht!!! Ich habe über 3 Jahre BASIC programmiert und bin jetzt auf ASM umgestiegen, zwar ist der einstige nicht ganz einfach, aber du wirst dich wie Gott fühlen wenn du die ersten Befehle kennst, denn deine Programme werde einfach nur durch deinen Kontroller begrenzt. ASM ist nur schwer wenn man faul ist!!!! Der knackpunkt ist, das du in ASM mehr zeilen Code tippen muss und rechenopperationen wie z.B Multipizieren selber coden musst, das ist anfangs nervig, aber mit der zeit machts richtig spaß. Außerdem du lernst deinen Kontroller erst in ASM kennen, wenn du BASIC,C o.a. Progst wirst du den Kontroller wesentlichz schlechter verstehen mein TIPP: Hänge dich rein, lern Assembler und sei Gott!!!