Forum: Mikrocontroller und Digitale Elektronik Programmiersprache für AVR ATmega16/32?


von Roy T. (thinnes)


Lesenswert?

Hallo,

Ich habe folgendes vor:
Ich möchte wieder ein wenig mit meinen ATmega's 16/32 spielen. Dies habe 
ich vor Jahren schon in der Schule gemacht, immer in ASM.
Sonst habe ich auch schon mal ein wenig in php gescriptet oder HTML und 
für die Schule natürlich VB und VBA.

Jetzt meine Frage: welche Programmiersprache würdet ihr mir empfehlen 
für die uC's??? Wieder die ASM-Plagerei oder doch lieber Basic per 
Bascom, oder gar direkt ein C-Compiler?? C kann ich zwar nicht, aber ich 
denke, so lange wie ich nicht mehr programmiert habe, kann ich auch kein 
ASM oder VB mehr...

Ich möchte einen analogen Eingang nutzen und einen LCD ansteuern. 
Zumindest vorerst...

Das soll natürlich nicht das einzige Projekt sein...

mfG
Roy

von Thomas P. (tommy2002)


Lesenswert?

C

Grüße

von wendelsberg (Gast)


Lesenswert?

Meine Empfehlung bei solchen Fragen:

mit Assembler eine LED zum Blinken bekommen, dabei einen Timer 
verwenden, diese LED mit einem Taster (entprellt) ein- und ausschalten 
(ein-blinken-aus).

Da bekommst Du ein Gefuehl, was da eigentlich ablaeuft.

Fuer weitergehende Dinge dann C.

wendelsberg

von Thomas P. (tommy2002)


Lesenswert?

Möchtest du ein schnelles Ergebnis wo dich der Hintergrund nicht juckt, 
dann Arduino als Hardware und C als Programmiersprache.

Möchtest du ein ambitionierter Hobbyentwickler sein, dann der nackte 
Atmel und C als Programmiersprache.

Möchtest du studieren (E-Technik, Informatik) dann KANNST du in 
Assembler schauen, MUSST es aber nicht. Ich bin mit meinem E-Technik 
Studium fast fertig und habe Assembler nur in der Theorie gelernt, es 
aber nie benutzt, obwohl ich sehr viel programmiert habe.

Mittlerweile haben die Controller so viel Rechenpower, da lohnt sich 
Assembler meiner Meinung nach nicht mehr zu lernen. Alles was trotzdem 
sehr schnell sein muss habe ich mit FPGA + VHDL gelöst. Ist natürlich 
auch eine Kostenfrage.
Assembler war ganz okay um zu lernen wie man mit Speicher umgeht. Das 
konnte uns aber der Prof. anhand von C/C++ auch gut erklären.


Grüße

: Bearbeitet durch User
von guest (Gast)


Lesenswert?

Lerne die Sprache, die der Controller spricht... Assembler...

von Roy T. (thinnes)


Lesenswert?

Hallo,

Danke für die schnellen und vielen Antworten.

Ich konnte ja bereits ASM, VB, VBA, PHP und HTML. Also ich bin kein 
blanker Neuling. Ich habe das alles in der Schule benutzt als ich meinen 
Techniker in der Kommunikationselektronik gemacht habe.

Ich wollte jetzt lediglich wissen was ihr empfehlen könnt.

Für die Hardware wird erstmals NUR ATmega benutzt. Und es ist ja nur 
Spasseshalber also muss es auch nicht schrecklich schnell gehen, aber 
mal ehrlich, wer kann den schon lange darauf warten das fertige Projekt 
zu sehen? :-P

Wenn ich C ausprobieren will, welchen Compiler kann man da empfehlen und 
gibt es evtl. einen Freeware-C-Compiler?

mfG
Roy

von guest (Gast)


Lesenswert?

Atmel Studio

von yuccy (Gast)


Lesenswert?

@guest: Du bist ne Pappnase.

von wendelsberg (Gast)


Lesenswert?

Roy T. schrieb:
> Wenn ich C ausprobieren will, welchen Compiler kann man da empfehlen und
> gibt es evtl. einen Freeware-C-Compiler?

http://www.mikrocontroller.net/articles/AVR-GCC

wendelsberg

von Blauzahn (Gast)


Lesenswert?

guest schrieb:
> Lerne die Sprache, die der Controller spricht... Assembler...

Der Controller spricht nicht, schon gar nicht Assembler. Der Controller 
versteht nur binäre Daten, und da ist es egal, ob der Ursprung Assembler 
oder C oder Basic war.

von Frank (Gast)


Lesenswert?

Ich finde PHP hat Ähnlichkeit mit C...

von peter (Gast)


Angehängte Dateien:

Lesenswert?

Ich will Erfolge sehen und "C" verstehen.
Habe dort 2 MEGA2560 und andere Sachen drauf auf meinem Bastelbrett.
Arduino-IDE und es geht ab, auch mit eigenen Headern kann man es 
erweitern und ist nicht nur auf das Gelieferte angewiesen.

Gruss

von Thomas L. (thomas_hx)


Lesenswert?

Der Vollständigkeit halber sei noch Luna(AVR)erwähnt.
http://avr.myluna.de/doku.php?id=de:about

von Joe (Gast)


Lesenswert?

Genau, Luna wollte ich auch gerade schreiben.

Es gibt auch PASCAL für Atmega's, eine sehr saubere Sache.

Dann ist da noch BASCOM. Hat Ähnlichkeiten mit Java und Standard Basic.
Erlaubt aber auch jeden Registerzugriff, hat keinen Nachteil gegenüber 
C.

von Black J. (shaman)


Lesenswert?

Thomas P. schrieb:
> Möchtest du ein schnelles Ergebnis wo dich der Hintergrund nicht juckt,
> dann Arduino als Hardware und C als Programmiersprache.
>
> Möchtest du ein ambitionierter Hobbyentwickler sein, dann der nackte
> Atmel und C als Programmiersprache.
>

Warum immer so schwarz/weiß? Was spricht dagegen ein Arduino Board mit 
z. B.  Atmel Studio zu verwenden?

: Bearbeitet durch User
von m.n. (Gast)


Lesenswert?

Joe schrieb:
> Dann ist da noch BASCOM.
> ... hat keinen Nachteil gegenüber C.

Das ist mir neu, obwohl es für kleinere Dinge eine Alternative wäre.

von Koermit (Gast)


Lesenswert?

Sauber! Full ACK, endlich mal einer der es ausspricht!
Danke an c-hater! :)

von Christopher J. (christopher_j23)


Lesenswert?

c-hater schrieb im Beitrag #4501163:
> Spannend wird es dann, wenn die Komplexität der Anwendung soweit steigt,
> dass der Kram mit prozeduralen Mitteln allein nur noch schwer
> beherrschbar ist. Spätestens dann ist der Umstieg auf das OO-Paradigma
> angesagt.

Das würde ich mal in Frage stellen. Soll das Ironie sein?

c-hater schrieb im Beitrag #4501163:
> C++ ist die OO-Sprache, die den meisten Fleiss erfordert,
> weil sie nicht nur all den unsäglichen Scheiss von C mitschleppt,
> sondern noch einiges drauf setzt...

... nämlich zu allererst den ganzen OO-Müll inkl. einer Runtime und 
einem komplett verkrüppelten Exception-Management.

Thomas P. schrieb:
> C

Dem schließe ich mich mal an :p

Ich finde es aber auch schon ziemlich sinnvoll wenigstens mal die 
Grundzüge von Assembler zu lernen und wie hier auch schon erwähnt, mal 
eine LED zum blinken zu bringen. Ohne C, ohne C++ und ja bitte erst 
recht ohne BASCOM. Hier gab es mal einen Thread da hat der Lothar das 
mal aufskizziert wie das aussehen kann: 
Beitrag "Re: ARM Cortex gegen AVR"

von ?!? (Gast)


Lesenswert?

Black J. schrieb:
> Thomas P. schrieb:
>> Möchtest du ein schnelles Ergebnis wo dich der Hintergrund nicht juckt,
>> dann Arduino als Hardware und C als Programmiersprache.
>>
>> Möchtest du ein ambitionierter Hobbyentwickler sein, dann der nackte
>> Atmel und C als Programmiersprache.
>>
>
> Warum immer so schwarz/weiß? Was spricht dagegen ein Arduino Board mit
> z. B.  Atmel Studio zu verwenden?

Lies dir nochmal durch, was wenige Zeilen weiter oben steht:
> Thomas P. schrieb:
>> Möchtest du ein schnelles Ergebnis wo dich der Hintergrund nicht juckt,
>> dann Arduino als Hardware und C als Programmiersprache.

von Black J. (shaman)


Lesenswert?

?!? schrieb:
> Lies dir nochmal durch, was wenige Zeilen weiter oben steht:

Das gilt auch für  dich ;) Ich habe nur geschrieben,  dass man Arduino 
Board auch ohne Arduino IDE nutzen kann,  weil es im Grunde nur eine 
Grundschaltung mit einem Atmega Chip ist (+ Bootloader) ist. Vor allem, 
wenn man keine Lust hat,  die eigene Platine zu ätzen.

von peter (Gast)


Lesenswert?

Zu aufgeblasen in der iDE , nur für größere Projekte geeignet, schwer 
erlernbar:
------------------------
...Atmel Studio
-------------------------


Für diesen Mann nicht geeignet:
-----------------------------------------------
....Ich möchte wieder ein wenig mit meinen ATmega's 16/32 spielen.
-----------------------------------------------
Merke: ....ein wenig....

von Roy T. (thinnes)


Lesenswert?

Hallo,
Danke für die Antworten.

Ich werde es also mit C versuchen. Ich habe nun WinAVR installiert und 
werde mir das mal ansehen... Erkennt WinAVR auch das alte STK500 von 
Atmel, oder muss ich zum übertragen auf den mega16/32 noch eine Soft von 
Atmel nehmen?

mfG
Roy

von Roy T. (thinnes)


Lesenswert?

Hallo,

Ich habe nun ein wenig rumprobiert in ASM so gut wie in C.

Ich habe AS4 und AS6.2 mit meinem STK500. Mit AS4 schaffe ich es 
zumindest mal den ASM-Code auf den mega16 zu bekommen. Aber den C-Code 
bekomme ich weder mit AS4 noch mit AS6.2 drauf.

Irgendwie scheine ich da was falsch zu machen. Ich habe nun auch WinAVR 
ausprobiert und da klappt es auch nicht auf Anhieb :-(

Da jedoch der ASM-Code mit AS4 funktioniert hat, liegt es ja wohl eher 
nicht am STK500, dem uC oder der Software...

Gibt es denn da kein Entwicklertool das alles macht? Also wo man den 
Code schreibt, dann auf einen Button drückt und das Tool compiliert und 
erstellt alle Dateien die man braucht??

Mit AS4 (irgendwie übersichtlicher und viel einfacher als AS6.2) habe 
ich zumindest eine Konkrete Fehlermeldung beim "Make" bekommen.
Ich habe zwar das Make per Kommandozeile von Windows ausgeführt, aber 
zumindest kam ne Fehlermeldung... Und zwar vermisst er eine .o Datei.

Was genau habe ich vergessen zu machen? Und wie bereits gefragt, geht 
das nicht simpler??

mfG
Roy

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.