Hallo pebisoft.

In der Anleitung zum Experimentiersystem habe ich bewußt die drei von mir
berücksichtigten Programmiersprachen (C, Assembler und Basic) neutral nebeneinander
gestellt. Die zu den Versuchen erstellten Programme wurden zunächst nicht optimiert,
damit man die Programmstrukturen besser vergleichen kann. So soll jedem ein
Einstieg seiner Wahl ermöglicht werden. Eine weitere Optimierung durch Spezialisten
der jeweiligen Programmiersprache ist natürlich möglich.

Der Vergleich von Programmiersprachen ist immer schwierig und wurde daher von mir in
einem gesonderten Text durchgeführt. Ich sehe bei allen o. a. Programmiersprachen
Vor- und Nachteile. Es muss also jeder für sich entscheiden, mit welcher Programmiersprache
er arbeiten will.

Prsönlich habe ich habe bei der Programmierung der AVR-Mikrocontroller sehr gute Erfahrungen
mit C (WinAVR) gemacht. Zusätzlich entwickle ich noch die ein oder andere extrem zeitkritische
Anwendung direkt in Assembler und benutze dabei Atmels AVR Studio 4. Assembler und C bilden
eine gute Mischung, da C als hardwarenahe Hochsprache hier viel Flexibilität bietet. Außerdem
sind gerade die AVR-Mikrocontroller bzgl. Befehlssatz und Architektur für C optimiert. Gängige
C-Compiler können dadurch sehr guten Code erzeugen.

Mit BASCOM-AVR (einige Wochen) habe ich mich tatsächlich noch nicht so intentiv beschäftigt, wie mit
C oder Assembler (einige Jahre). Im Wesentlichen habe ich mich in BASCOM-AVR eingearbeitet, um die
Anleitung auch auf Basic ausdehnen zu können. In diesem Zusammenhang kann ich durchaus bestätigen,
das der Einsteig mit BASCOM-AVR recht einfach ist. Auf der anderen Seite wird natürlich alles
"gekapselt", man weiss eigentlich nicht mehr genau was dann hinterher passiert. Dies ist bei
der Mikrocontrollerprogrammierung nicht immer von Vorteil.

Bei der Arbeit mit BASCOM-AVR fiel mir dann allerdings ein Punkt auf,
den ich von einer Entwicklungsumgebung nicht erwartet hätte:

BASCOM-AVR kann keine Ausdrücke verarbeiten. D. h. ich muss alle meine Berechungen
in einzelne Schritte mit jeweils zwei Operatoren zerlegen.

Beispiel:
'E = A1 + A2 + A3

E = A1 + A2
E = E + A3

Dies entspricht dann in etwa der Vorgehensweise bei der Assemblerprogrammierung. Gerade bei
einem Compiler gehört es m. E. aber unbedingt dazu, das er Ausdrücke übersetzen kann.

Diese Unzulänglichkeit empfinde ich als echtes Problem, daher werde ich z. Zt. keine größeren
Programme mehr mit BASCOM-AVR angehen. U. U. behebt MCS-Electronic dieses Problem mal in einer neuen Version.

Aufgrund meiner Erfahrung empfehle ich weitehin, über kurz oder lang die Programmiersprache C
zu lernen. Besonders bei komplexen Echtzeitprojekten mit industriellem Anspruch kommt man
dort einfach am weitesten.

Am meisten Sinn macht es jedoch, die verschiedenen Programmiersprachen alle im persönlichen
Portfolio zu haben, denn:

"Die Wahl der zu verwendenden Programmiersprache hängt immer von der geplanten Anwendung ab."


Grüße,
Kai.