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.
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
> 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...
...
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.
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 ...
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.
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.
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.
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.
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
>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 ?
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
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 :-)
> 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).
...
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
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...
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
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).
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.
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.
...
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.
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.