Forum: Mikrocontroller und Digitale Elektronik Kompatible programmier Umgebung


von Schmi D. (schmi_d)


Lesenswert?

Hallo Leute,

ich wollte mich mit der Programmierung von Mikrocontrollern 
beschäftigen, hab mir dafür mal ein Starterpaket von Franzis zugelegt. 
Da soll man mit Bascom programmieren. Ich möchte aber bei der 
Programmiersprache C bzw C++ bleiben, da ich die an der FH in Informatik 
hatte und mein Wissen in diesem Bereich erweitern möchte. Daher die 
Frage welche Entwicklungsumgebung eignet sich für die Programmierung 
(AVR Atmega88)und kann ich einfach andere Entwicklungsumgebung nutzten??
(Hab das Modul Mikrocontroller erst im nächsten Semester)

Über ein paar produktive Beiträge wäre ich euch sehr dankbar.

von Karl H. (kbuchegg)


Lesenswert?

Hol dir von Atmel das AVR-Studio. Bzw. die neue Version heißt ja jetzt 
"Atmel-Studio".

Das problematische an der Sache ist eigentlich der Brennvorgang, wie 
also das übersetzte Programm vom PC in den µC kommt. Wenn alle Stricke 
reißen, dann kannst du dafür wieder die BASCOM Komponente benutzen, bzw. 
was dein Francis Packet da so vorsieht. Denn eines haben alle 
Entwicklungsumgebungen gemeinsam: hinten kommt ein HEX-File raus, welche 
mit einem Brennprogramm auf den µC gebrannt wird.

von da1l6 (Gast)


Lesenswert?

Hallo

Auf welchem Betriebssystem soll es laufen?

Eigentlich braucht man gar keine IDE.
C/C++ kann man gut mit einem Texteditor schreiben und dann mittels 
Makefile+avr-gcc/avrdude kompilieren und flashen.

Unter Windows kommt oft Atmel-Studio 6 zum Einsatz. Es hat eine schöne 
Code Vervollständigung. Die kann bei Fremd-Projekten anfangs Zeit 
sparen. Ohne diese Funktion ist man gezwungen sich mehr in den Code und 
die libraries einzuarbeiten, das kann sich später aber auszahlen.

Das Flash-Tool von Atmel-Studio ist einfach nur nervig. Ettliche klicks 
sind nötig um das Programm zu Flashen. Sicherstellen, dass man den 
aktuellen Code auch vorher kompiliert hat oder auch dass man überhaupt 
das Programm flasht was man gerade bearbeitet tut es auch nicht.

Ich setze auf die Texteditor+Makfile+avrdude Methode, ein Hotkey auf 
"make program" und alle geänderten Dateien werden neu kompiliert und das 
programm geflashet. Schneller geht es nicht.

da1l6

von Schmi D. (schmi_d)


Lesenswert?

Also sollte ich mir das AVR Studio zulegen um mit C oder C++ zu 
programmieren?

Habt ihr einen guten Link wo ich dieses Tool kostenlos laden kann bzw 
gibt's das überhaupt kostenlos?

Makefile+avr-gcc/avrdude  das sind dann zwei unterschiedliche Programme?

Und schon mal danke für eure Hilfe ;-)

von Karl H. (kbuchegg)


Lesenswert?

Das ist eine "11-er Frage" (den Ausdruck kennen nur noch die älteren 
unter uns.)

Mal sehen.
Du programmierst einen AVR. Der wird von der Firma 'Atmel' hergestellt.
Die IDE heißt in der älteren Version "AVR-Studio", in der neueren 
"Atmel-Studio".
Was wäre wohl mein erster Anlaufpunkt, um mir die Software zu besorgen?

Rischtisch. Ich würde bei Microsoft anfangen zu suchen :-) Weil 
Microsoft hat ja so wahnsinnig großes Interesse daran, dass die Firma 
ATmel Prozessoren verkauft.

: Bearbeitet durch User
von Davidoff (Gast)


Lesenswert?

Karl Heinz schrieb:

> Weil Microsoft hat ja so wahnsinnig großes Interesse daran, dass die
> Firma ATmel Prozessoren verkauft.

Das finde ich sehr interessant. Kannst du näheres schreiben oder hast du 
einen Link, in dem die Zugsamenarbeit von Microsoft & Atmel erläutert 
werden. Für welche Prozessoren gilt deine Aussage?

Mit freundlichen Grüßen

Davidoff

von Thomas E. (thomase)


Lesenswert?

Davidoff schrieb:
> Karl Heinz schrieb:
>
>> Weil Microsoft hat ja so wahnsinnig großes Interesse daran, dass die
>> Firma ATmel Prozessoren verkauft.
>
> Das finde ich sehr interessant. Kannst du näheres schreiben oder hast du
> einen Link, in dem die Zugsamenarbeit von Microsoft & Atmel erläutert
> werden. Für welche Prozessoren gilt deine Aussage?
>
> Mit freundlichen Grüßen
>
> Davidoff

Kein Problem:

http://www.youtube.com/watch?v=GQrf2FJuNRQ

Das entspricht eher deinem zu diesem Forum inkompatiblen Niveau.

mfg.

: Bearbeitet durch User
von Davidoff (Gast)


Lesenswert?

Thomas Eckmann schrieb:

> http://www.youtube.com/watch?v=GQrf2FJuNRQ
>
> Das entspricht eher deinem zu diesem Forum inkompatiblen Niveau.

Das stimmt Thomas, mein Niveau ist Extraklasse und außerhalb dieses 
Forums und gewiss weit über deinem. Auf einer kommunikativen Ebene 
gehoben: du bist die Blechdose mit Bindfaden, ich bin das Smartphone.

von Karl Käfer (Gast)


Lesenswert?

Hallo Schmi D.,

Schmi D. schrieb:
> Also sollte ich mir das AVR Studio zulegen um mit C oder C++ zu
> programmieren?

Das kann man machen, muß man aber nicht. ;-)

> Habt ihr einen guten Link wo ich dieses Tool kostenlos laden kann bzw
> gibt's das überhaupt kostenlos?

http://www.atmel.com/tools/ATMELSTUDIO.aspx

> Makefile+avr-gcc/avrdude  das sind dann zwei unterschiedliche Programme?

Genauer gesagt sind es sogar drei unterschiedliche Programme. Das erste 
ist make, ein Build-Management-Werkzeug. Das steuert nach einer 
definierten Vorschrift den Compiler, der Deinen Quelltext in 
Maschinencode übersetzt. Dann brauchst Du eigentlich noch ein drittes 
Programm, das aus dem Maschinencode ein Hex-Abbild macht, welches dann 
mit dem vierten Programm, dem Brennprogramm avrdude, auf den 
Mikrocontroller gebrannt wird.

Im Prinzip läuft der Vorgang also so:

- Quelltext schreiben (Texteditor oder IDE)
- Quelltext in Binärcode übersetzen (avr-gcc)
- Binärcode in Hex-Abbild umwandeln (avr-objcopy)
- Hex-Abbild auf den Mikrocontroller brennen (avrdude)

Wenn Du Dich mit GNU Make ein bisschen auskennst -- was für Leute, die 
in C oder C++ entwickeln wollen, ohnehin sehr zu empfehlen ist -- dann 
kannst Du alle diese Schritte damit ganz einfach automatisieren.

Eine IDE wie Atmel Studio faßt diese Werkzeuge (oder andere Werkzeuge 
mit derselben Funktionalität) unter einer grafischen Benutzeroberfläche 
zusammen. Manche mögen das, andere nicht. Ich, zum Beispiel, habe lieber 
die volle Kontrolle und verwende deswegen keine IDE, sondern nur einen 
Texteditor (Emacs) und die Kommandozeilenwerkzeuge. Ich bin ohnehin ein 
erklärter Freund der Kommandozeile, weiß aber natürlich, daß das nicht 
jedermanns Sache ist. ;-)

Insofern kommt es für Dich darauf an, herauszufinden, was Du am Liebsten 
magst. Mit der Atmel-IDE kommst Du wahrscheinlich am schnellsten zu 
ersten Erfolgserlebnissen, was der Motivation zuträglich ist. Es lohnt 
sich aber trotzdem, sich danach mal anzuschauen, was unter der 
Klickibunti-Haube läuft; die Kommandozeilenwerkzeuge bieten oft eine 
Reihe interessanter Funktionen, die über die IDE nicht so einfach 
zugänglich sind.

HTH,
Karl

von Karl Käfer (Gast)


Lesenswert?

Hallo Davidoff,

Davidoff schrieb:
> Das stimmt Thomas, mein Niveau ist Extraklasse und außerhalb dieses
> Forums und gewiss weit über deinem. Auf einer kommunikativen Ebene
> gehoben: du bist die Blechdose mit Bindfaden, ich bin das Smartphone.

Wenn das Phone wirklich smart wäre, dann hätte es die Ironie erkannt.

HTH,
Karl

von Simon S. (-schumi-)


Lesenswert?

Schmi D. schrieb:
> Also sollte ich mir das AVR Studio zulegen um mit C oder C++ zu
> programmieren?
>
> Makefile+avr-gcc/avrdude  das sind dann zwei unterschiedliche Programme?
Um deinem Verständnis mal auf die Sprünge zu helfen:

Wenn du einen Mikrocontroller programmieren möchtest, brauchst da ja auf 
jeden Fall folgendes:
 - Einen Editor in den du deinen Programmquellcode reinschreibst
 - Ein Programm, das dir deinen Quellcode in die Maschinensprache des 
Mikrocontrollers umwandelt ("Compiler" genannt)
 - Ein Programm, das dein übersetztes Programm (also den Maschinencode) 
auf den Mikrocontroller überträgt ("flashen" genannt)

Du könntest also nehmen:
 - Editor: Geany, Notepad++, was auch immer
 - Compiler: avr-gcc
 - flash-Programm: avrdude
Der Editor ist ein ganz normaler Editor mit Fenster, Menüs usw. Die 
anderen beiden Programme sind auf der Kommandozeile zu bedienen, das ist 
natürlich nicht so komfortabel, deswegen gibt es Makefiles:
1. Man schreibt/kopiert ein Makefile, wo drin steht was getan werden 
soll (welche Programme etc), um das Programm in Maschinensprache zu 
übersetzen und was getan werden soll um es zu flashen
2. Wenn man dann im Ordner mit dem Makefile und dem Quellcode den Befehl 
"make all" ausführt, wird der Quellcode übersetzt
3. Wenn man "make program" ausführt wird geflasht
Damit man die Befehlen "make all" und "make program" nicht selbst 
eingeben muss, stellt man den Editor so ein, dass er bei einem Shortcut 
"make all" und bei einem anderen Shortcut "make program" ausführt. So 
muss man zur zwei Tasten drücken um den Quellcode auf den µC zu bringen 
(Eigentlich reicht sogar eine, da bei "make program" die Modifizierten 
Quelltextdateien automatisch neu übersetzt werden)

Jetzt hast du im Prinzip deine eigenen IDE (=Integrated Development 
Environment) zusammengebaut.

AVR-Studio bzw. Atmel-Studio ist auch so eine IDE, nur ist da schon 
alles vorkonfiguriert und somit für den Anfänger einfacher.

Nachteil ist, dass sie nicht so flexibel ist. Es könnte also sein, dass 
mit AVR-Studio deinen µC nicht flashen kannst, weil du irgendeine 
komische flash-Hardware (=Programmer) hast. Wenn du dir deine "IDE" 
selbst baust, hast du mit avrdude eines der mächtigsten Flashtools an 
der Hand, und selbst wenn das nicht geht, kannst du das Programm von 
Franzis im Makefile für "make program" eintragen.

von Thomas E. (thomase)


Lesenswert?

Davidoff schrieb:
> Thomas Eckmann schrieb:
>
>> http://www.youtube.com/watch?v=GQrf2FJuNRQ
>>
>> Das entspricht eher deinem zu diesem Forum inkompatiblen Niveau.
>
> Das stimmt Thomas, mein Niveau ist Extraklasse und außerhalb dieses
> Forums und gewiss weit über deinem. Auf einer kommunikativen Ebene
> gehoben: du bist die Blechdose mit Bindfaden, ich bin das Smartphone.

LOL.

Das ist natürlich ein ausserordentliches Kompliment für jemanden, der 
Smartphones für absolut überflüssigen Schwachsinn hält. Yeah, du bist 
das Smartphone.

mfg.

von Davidoff (Gast)


Lesenswert?

Thomas Eckmann schrieb:

> Das ist natürlich ein ausserordentliches Kompliment für jemanden, der
> Smartphones für absolut überflüssigen Schwachsinn hält. Yeah, du bist
> das Smartphone.

Dachte ich mir schon, dass du Schwierigkeiten hast, dich mit aktueller 
Technik zurechtzufinden. Bin gerne das Smartphone (siehe unten). Du bist 
eben nur die Dose mit Bindfaden.

LingoPAD: Smart {adj}

clever; intelligent; schlau; gewitzt; raffiniert; hervorragend; schick; 
flott; fesch

von Schmi D. (schmi_d)


Lesenswert?

Danke Karl Käfer und Simon S. ....die Erläuterungen sind sehr hilfreich 
zum groben Verständnis.
Ich werde mal schauen wie weit ich komme...

Und wenn Jemand auf sinnlose Diskussionen aus ist, schreibt euch bitte 
woanders oder gründet ein Forum für dieses Anliegen.
Danke!

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.