Forum: Mikrocontroller und Digitale Elektronik Programmiersprache für AVR


von Programmiersprache für AVR (Gast)


Lesenswert?

Hallo Leute,
ich habe mir folgenden µC zugelegt:

http://cgi.ebay.de/ws/eBayISAPI.dll?ViewItem&item=120675965686&ssPageName=STRK:MEWNX:IT#ht_5858wt_905

Da ich noch Anfänger bin würde ich gerne wissen mit welcher Sprache und 
folglich auch mit welcher Entwicklungsumgebung ich arbeiten sollte. (Je 
leichter desto besser).

Mit freundlichen Grüßen
Lukas Kresser

von Bernadette (Gast)


Lesenswert?

Benutze für den Anfang BASCOM.

Free-version bis 4kByte

Siehe auch ein Schülerprojekt:

http://home.arcor.de/wosm/AtmegaProjekt/index.htm

B.

von Thomas E. (thomase)


Lesenswert?

Programmiersprache für AVR schrieb im Beitrag #2048906:
> http://cgi.ebay.de/ws/eBayISAPI.dll?ViewItem&item=...

Sehr aufschlussreich!

Programmiersprache für AVR schrieb im Beitrag #2048906:
> Da ich noch Anfänger bin

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


mfg.

von Sam .. (sam1994)


Lesenswert?

Programmiersprache für AVR schrieb im Beitrag #2048906:
> Da ich noch Anfänger bin würde ich gerne wissen mit welcher Sprache und
> folglich auch mit welcher Entwicklungsumgebung ich arbeiten sollte. (Je
> leichter desto besser).

Wenn du gar keine Erfahrung mit dem Programmieren hast, lern das 
erstmal. Und zwar am PC. Am µC ist alles doppelt so schwer. Bascom ist 
zwar einfach bietet aber auch nicht viel. Ich würde dir empfehlen C zu 
lernen, das musst du sowieso wenn du größere Projekte machen willst. 
Bascom als Einstieg ist sicher auch nicht schlecht (hab ich auch 
gemacht, allerdings hatte ich mehr Probleme damit als mit c, da ich 
schon c# und c++ konnte).

Fazit: Für den anfang reicht Bascom aus. Später kommst du um C nicht 
mehr herum. Wenn man erst programmieren lernt ist es deutlich 
einfacherer.

von Charly B. (charly)


Lesenswert?

Samuel K. schrieb:
> Bascom ist zwar einfach bietet aber auch nicht viel. Ich würde dir
> empfehlen C zu lernen, das musst du sowieso wenn du größere Projekte
> machen willst.
Wirklich ? Samuel, ich empfehle dir :
http://www.youtube.com/watch?v=vNc6mIwH9lI&feature=related

> Bascom als Einstieg ist sicher auch nicht schlecht (hab ich auch
> gemacht, allerdings hatte ich mehr Probleme damit als mit c, da ich
> schon c# und c++ konnte).
 Ja wenn du was nicht kannst ist es automatisch schlecht ?

> Fazit: Für den anfang reicht Bascom aus.
fuer spaeter auch !

Lerne aber noch Assembler dazu denn nur DA verstehst du auch die
Architektur des Prozessors und das ist auch wichtig.

vlG
Charly

von Hannes L. (hannes)


Lesenswert?

> Lerne aber noch Assembler dazu denn nur DA verstehst du auch die
> Architektur des Prozessors und das ist auch wichtig.

Der Spruch hätte von mir sein können...

...

von mr. mo (Gast)


Lesenswert?

ist alles geschmackssache, aber mit assembler sollte man schon anfangen, 
dann weiss man immerhin was man tut ^^ nachteil dabei ist aber, man muss 
das rad oft neu erfinden. ausser man kopiert sich die standart code 
schnipsel zusammen.

um in C zu programmieren sollte man vorher mal ein bisschen damit 
rumgespielt haben, sonst kann der einstieg relativ schwer werden. gibt 
aber jede menge gute tutorials und anleitungen zu C.

von Lehrmann M. (ubimbo)


Lesenswert?

Bernadette schrieb:
> Benutze für den Anfang BASCOM.
>
> Free-version bis 4kByte
>
> Siehe auch ein Schülerprojekt:
>
> http://home.arcor.de/wosm/AtmegaProjekt/index.htm
>
> B.

Bascom ist keine Hochsprache und damit nicht optimalst für 
Mikrocontroller geeignet. Auch wenn es Verfechter der Bascom bzw. 
Basic-Szene nie wahr haben wollen: Jede professionelle / kommerzielle 
Applikation verwendet C ... warum ?! einheitlicher Syntax, jeder kann 
es, besser zu lesen, keine tausend Dialekte mit verschiedenen Syntaxen 
...
Wenn ich noch ein Bewerbungsgespräche hätte, dann würde ich mich hüten 
zu erzählen, ich könne Basic oder einen Dialekt davon ...

von Alex W. (a20q90)


Lesenswert?

Lehrmann Michael schrieb:
> Bernadette schrieb:
>> Benutze für den Anfang BASCOM.
>>
>> Free-version bis 4kByte
>>
>> Siehe auch ein Schülerprojekt:
>>
>> http://home.arcor.de/wosm/AtmegaProjekt/index.htm
>>
>> B.
>
> Bascom ist keine Hochsprache und damit nicht optimalst für
> Mikrocontroller geeignet. Auch wenn es Verfechter der Bascom bzw.
> Basic-Szene nie wahr haben wollen: Jede professionelle / kommerzielle
> Applikation verwendet C ...
> Wenn ich noch ein Bewerbungsgespräche hätte, dann würde ich mich hüten
> zu erzählen, ich könne Basic oder einen Dialekt davon ...

Auch wenn ich in C progge, behaupte ich mal Deine Aussage bezüglich 
Hochsprache und Bascom ist falsch, und gründet darauf, Neuänfänger vom 
bösen Basic abzuhalten.

Witzigerweise ist Bascom für Anfänger besser geeignet als C. In Bascom 
brauchste eigendlich nix können, du machst es einfach.

von Artur R. (artur2000)


Lesenswert?

In der Industrie wird hauptsächlich in C Programmiert. Wenn du später 
studieren willst oder in dieser Richtung einen Beruf ausübern willst --> 
C

von Holger P. (Gast)


Lesenswert?

Ich habe auch total von vorne angefangen und habe es mit Asembler 
gemacht. Man sagte mir wenn ich das mache würde ich auch besser 
verstehen was ich mache und wie der µC Arbeitet. Muss sagen ich mach 
noch nicht viel aber was ich mache verstehe ich. Selbst meine Fehler 
verstehe ich im nachhinein.

Bei Bascom ist Dir nicht bekannt warum der µC was so oder so macht. Bei 
C glaube ich auch nicht.

von Alex W. (a20q90)


Lesenswert?

Ich beherrsche alle 3 (C, Assembler und Bascom). Ich würde aber Bascom 
vorziehen (vorallem wenn ein Kunde keinen Quelltext sehen will). Das 
spart Zeit und Geld. Fehler konnte ich bei Bascom problemlos finden. 
Zudem wird der Quelltext kürzer. Hier ist in dem Fall nur die 
Geschmacksfrage gültig! Besser/Schlechter gibt es nicht.

von Sven P. (Gast)


Lesenswert?

Ich stimme Holger P. zu, und zwar genau aus den Gründen.

Fraglich ist, ob ein Kunde nachher Basic-Kinderkacke sehen möchte, oder 
ob er lieber portable Algorithmen mag, die man mehr oder weniger zügig 
auf einen anderen Prozessor umsatteln kann.

von The_Ride (Gast)


Lesenswert?

Hi!

Hier ist eine gute Einsteigerseite
http://www.dieelektronikerseite.de/

cya The_ride

von Bernadette (Gast)


Lesenswert?

Was kann C, was BASCOM nicht kann ?



B.

von Spess53 (Gast)


Lesenswert?

Hi

>Was kann C, was BASCOM nicht kann ?

Dann kann man auch fragen: Was kann C, was Assembler nicht kann? Soll 
davon man jetzt die Daseinsberechtigung einer Programmiersprache 
ableiten?

MfG Spess

von Purzel H. (hacky)


Lesenswert?

>Fraglich ist, ob ein Kunde nachher Basic-Kinderkacke sehen möchte, oder
ob er lieber portable Algorithmen mag, die man mehr oder weniger zügig
auf einen anderen Prozessor umsatteln kann.

Das Portabilitaetsargument wird nicht wahrer, indem man's wiederholt. 
Die meisten Kunden wollen ein Problem geloest haben. Weshalb sollte 
man's auf einen anderen Prozessor portieren ?

von Peter (Gast)


Lesenswert?

>Was kann C, was BASCOM nicht kann

All die schönen Dinger die man mit Pointer, Structs sowie mit Pointer 
auf Structs und Funktionen tun kann...

von Valentin B. (nitnelav) Benutzerseite


Lesenswert?

Hmm.
Ich würde dir empfehlen C zu nehmen.
Aus drei Gründen:

1. Syntax bleibt gleich. Nicht wie in Bascom, dass jedes System eine 
eigene Sprache hat. C kann man später auch auf ARM verwenden.

2. Du lernst programmieren.
Nicht nur logisch denken, sondern dich auch in computertechnischen 
Einheiten auszudrücken.
Und die Syntax von C ist weit verbreitet. Guck dir Java an.

3. Es ist frei.
Alles.
Es gibt einen freien Compiler.
Es gibt ein freies Tutorial.
Es gibt freie Hilfe.
Weil genügend Leute C machen.

Guck dir mal Codebeispiele von allen drei Sprachen an.
Einfach bei Wikipedia nach Assembler, C und Basic suchen.

Es ist deine Entscheidung.

Mit freundlichen Grüßen,
Valentin Buck

von Frank B. (foobar)


Lesenswert?

Mini Nilp schrieb:
> Das Portabilitaetsargument wird nicht wahrer, indem man's wiederholt.
> Die meisten Kunden wollen ein Problem geloest haben. Weshalb sollte
> man's auf einen anderen Prozessor portieren ?

Falls der Prozessor abgekündigt wird und es für den neuen Prozessor kein 
Bascom gibt. Oder wenn man bestehenden C Code verwenden möchte, was 
besonders bei größeren Microcontrollern wichtig ist. Programmiere bitte 
mal OpenSSL in Bascom nach :-)

von Hannes L. (hannes)


Lesenswert?

> Das Portabilitaetsargument wird nicht wahrer, indem man's wiederholt.

Richtig!

MC-Programme sind meist sehr hardwarenah.
Die Hardware der MCs ist recht unterschiedlich (sonst bräuchte man ja 
nur einen einzigen Standard-MC).
Will man diese Unterschiede alle berücksichtigen um die vielgerühmte 
Portabilität zu erreichen, so wird das Programm schnell kompex und 
unübersichtlich, und auch meist bedeutend langsamer als direkt und 
Hardwarenah (was in C durchaus geht, aber auf kleinen 8-Bittern meist 
nur über recht kryptische Umwege).

Dass C in der Wirtschaft seinen Platz hat, akzeptiere ich. Dass C das 
alleinige Mittel zum Programm sein soll, das akzeptiere ich nicht. Ich 
behaupte allerdings, dass man in einer Hochsprache nur dann effiziente 
Programme (für kleine 8-Bit-MCs) schreiben kann, wenn man die besonderen 
Features des Controllers kennt und damit auch den Befehlssatz (also 
ASM).

...

von Valentin B. (nitnelav) Benutzerseite


Lesenswert?

ASM ist für Anfänger, die noch nie programmiert haben um Welten 
schlimmer als C.
C ist übersichtlich und immer noch schnell genug.
Er will ja gar kein 1920x1280 Pixel Displayer mit einem 8-Pinner 
ansteuern, sondern nur mal ein bisschen experimentieren.

ASM ist wichtig! Für Highspeed beim Ausführen!

C ist wichtig! Für Highspeed beim Programmieren!

Mit freundlichen Grüßen,
Valentin Buck

von Sven P. (Gast)


Lesenswert?

Meine Ringpuffer in C kann ich jedenfalls fast 1:1 mitnehmen, wohin ich 
möchte. Den Dreiphasen-Pulsweitenmodulator auch. Die Menüführung für 
meinen Wecker auch. Den DCF-Empfänger mit elendig viel Fehlerprüfung und 
-korrektur auch.

Zumindest aber muss ich mir nicht einen mit 'DATA' abbrechen, um eine 
dämliche Menüstruktur im Programmspeicher abzulegen...

von Purzel H. (hacky)


Lesenswert?

>Programmiere bitte mal OpenSSL in Bascom nach :-)

Hust ... 1 block pro Sekunde auf einem AVR. Egal in welcher Sprache.

von Frank B. (foobar)


Lesenswert?

Kommt immer auf die Anwendung an, aber meistens gibt es nur wenige 
Stellen, die hardwarespezifisch sind, die man dann in einen eigenen 
Layer auslagern kann (den gute Compiler sowieso per Inline einfügen), 
sodaß man die Programmlogik hardwareunabhängig schreiben kann. Ein gutes 
Beispiel dafür, siehe den Source Code am Ende von meinem kleinen 
Testprojekt hier:

http://www.frank-buss.de/attiny/index.html

von Andreas K. (Gast)


Lesenswert?

Hiho,

von Assembler und Basic möchte ich nicht abraten, da ich da noch keine 
(bzw. nur geringe) Erfahrungen mit gemacht habe aber C würde ich auch 
einem Anfänger empfehlen, weil es bei mir nicht anders war.

In der Berufsschule gab es eine Microcontroller-AG, wo wir mit Assembler 
gearbeitet haben und im Endeffekt hat da niemand ein Projekt fertig 
bekommen. Da sollte man sich vielleicht vorher überlegen, ob man lieber 
programmieren will (C) oder ob man lieber genauer lernen will, was im µC 
vor sich geht (Assembler).

Meiner Meinung nach lernt man auch mit C noch ausreichend über den µC, 
weil man da trotzdem noch oft genug ins AVR-Datenblatt schauen muss. 
Außerdem gibt es hier auch ein super AVR-GCC Tutorial. Weiterhin kann 
man mit C auch leicht mal über den Programmiersprachen-Tellerrand hinaus 
gucken, weil der Schritt nach (zum Beispiel) C++ oder php nicht so groß 
ist.

Unter Win kann man dann WinAVR und AVRStudio verwenden oder (mein 
Favorit) Code::Blocks, avrdude und WinAVR (Windows) / gcc-avr (Linux).

von Thomas E. (thomase)


Lesenswert?

Alex W. schrieb:
> Ich beherrsche alle 3 (C, Assembler und Bascom). Ich würde aber Bascom
>
> vorziehen (vorallem wenn ein Kunde keinen Quelltext sehen will). Das
>
> spart Zeit und Geld. Fehler konnte ich bei Bascom problemlos finden.
>
> Zudem wird der Quelltext kürzer. Hier ist in dem Fall nur die
>
> Geschmacksfrage gültig! Besser/Schlechter gibt es nicht.

Wer sowas schreibt, kann überhaupt nicht programmieren.

Wer C beherrscht, benutzt das auch. Vielleicht noch ein bisschen 
Assembler, aber bestimmt kein Basic.

mfg.

von Hannes L. (hannes)


Lesenswert?

Gut, dann spalten wir die AVR-Freunde eben in C-Beherrscher und C-Dumme, 
ich oute mich als letzterer.

Ich habe C allerdings noch nicht vermisst, weil meine Programme meist 
sehr klein sind, aber oft etwas zeitkritisch. Auf dem AT90S1200, dem 
Tiny12 und dem Tiny15 hätte mir eine Hochsprache auch nicht allzuviel 
genützt.

Aber was soll's, es soll jeder nach seinem Gusto glücklich werden.

...

von Thomas E. (thomase)


Lesenswert?

Hannes Lux schrieb:
> Gut, dann spalten wir die AVR-Freunde eben in C-Beherrscher und C-Dumme,
>
> ich oute mich als letzterer.

Das will doch niemand.

Aber wenn einer behauptet er beherrscht C und dann Basic benutzt, naja.

Ich will hier auch keine Trollerei anfangen.

Aber C ist nun mal, insbesondere im professionellen Bereich, die 
vorherrschende Hochsprache.
Alles andere, ausser C++, interessiert da niemanden.

Und wie Lehrmann Michael schon treffend sagte:
> Wenn ich noch ein Bewerbungsgespräche hätte, dann würde ich mich hüten
>
> zu erzählen, ich könne Basic oder einen Dialekt davon ...

Wenn man bei einem Bewerbungsgespräch Basic-Kenntnisse erwähnt, ist das 
genauso belanglos, wie wenn du erzählst, daß du dein Auto abends in der 
Tiefgarage parkst. Ausser bei Visual Basic. Aber das ist was anderes und 
hat mit Controllern nichts zu tun.

Hannes Lux schrieb:
> Aber was soll's, es soll jeder nach seinem Gusto glücklich werden

Für den Hobby-Bereich gebe ich dir vollkommen recht.


mfg.

von Ben (Gast)


Lesenswert?

Was soll der ganze "Mist" hier?

Natürlich eignet sich Bascom als Prog. Sprache gut.
C Tutorial hat man hier auf der Seite.

Bascom ist schnell zu lernen und ziemlich mächtig, wenn es nötig ist 
kann man auch Assenbler einbetten.

C ist Standard. Und so befassen sich diese Seiten überwiegend mit C.
Wenn man später studiert bzw. den Techniker macht etc. ist C die Sprache 
die zählt. Deswegen ist C besser.

Was aber nicht heisst das Bascom schlecht ist. Im gegenteil, Bascom ist 
für jeden Anfänger und Fortgeschrittenen der in sein Hobbylabor Spaß hat 
prima geeignet. Ähnlich  Target oder Eagle.

Einfach mal beide Sprachen kurz anschauen und dann entscheiden.

von Valentin B. (nitnelav) Benutzerseite


Lesenswert?

Ich glaube es wäre hilfreich, wenn sich der TO noch mal melden würde.
Das könnte doch einige Fragen lösen...

Mit freundlichen Grüßen,
Valentin Buck

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.