www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Programmiersprache für AVR


Autor: Programmiersprache für AVR (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,
ich habe mir folgenden µC zugelegt:

http://cgi.ebay.de/ws/eBayISAPI.dll?ViewItem&item=...

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

Autor: Bernadette (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Thomas Eckmann (Firma: Thomas Eckmann Informationst.) (thomase)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Sam .. (sam1994)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Charly B. (charly)
Datum:

Bewertung
0 lesenswert
nicht 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 :
Youtube-Video "Weisheit des Jahres"

> 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

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht 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...

...

Autor: mr. mo (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Lehrmann Michael (ubimbo)
Datum:

Bewertung
0 lesenswert
nicht 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 ...

Autor: Alex W. (a20q90)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Artur R. (artur2000)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Holger P. (holg_i)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Alex W. (a20q90)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: The_Ride (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi!

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

cya The_ride

Autor: Bernadette (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was kann C, was BASCOM nicht kann ?



B.

Autor: Spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Zwölf Mal Acht (hacky)
Datum:

Bewertung
0 lesenswert
nicht 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 ?

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Valentin Buck (nitnelav) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Frank Buss (foobar)
Datum:

Bewertung
0 lesenswert
nicht 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 :-)

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht 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).

...

Autor: Valentin Buck (nitnelav) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Zwölf Mal Acht (hacky)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Programmiere bitte mal OpenSSL in Bascom nach :-)

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

Autor: Frank Buss (foobar)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Andreas K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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).

Autor: Thomas Eckmann (Firma: Thomas Eckmann Informationst.) (thomase)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht 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.

...

Autor: Thomas Eckmann (Firma: Thomas Eckmann Informationst.) (thomase)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Ben (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Valentin Buck (nitnelav) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.