Forum: Mikrocontroller und Digitale Elektronik Programmiersprache für AVR


von Matthias (Gast)


Lesenswert?

Welche Programmiersprache ist denn aus Eurer Sicht für den
AVR zu empfehlen?

ASSEMBLER ATMEL:
+ gratis
+ Codegröße
- Übersichtlichkeit?
- Einlern- und ggf. Umlernaufwand
- Debugger, der noch mit STK200 läuft woher?
  (die neue Version fragt chip auf der STK500 ab,
   den ich ja nicht habe !)

JAVR-BASIC:
+ gratis
+ erzeugt asm-Code
+ inline asm
- extra Assemblerlauf nötig
- Doku

BASCOM:
+ Demo gratis, nicht teuer
+ Buch verfügbar
+ sehr guter Support
+ tolle integrierte Entwicklungsumgebung
+ alles auf wenige Knopfdrücke
- dzt. kein asm-Code im Listing, soll aber kommen
- Umlernaufwand, wenn es mit dem AVR nicht
  klappen sollte

GCC:
+ C-Code

Lohnt es sich hier mit C anzufreunden,
oder kommt man mit BASCOM schneller
zu ähnlich guten Ergebnissen?

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Hallo Matthias,

> ASSEMBLER ATMEL:
> + gratis
> + Codegröße
> - Übersichtlichkeit?
> - Einlern- und ggf. Umlernaufwand
> - Debugger, der noch mit STK200 läuft woher?
>   (die neue Version fragt chip auf der STK500 ab,
>    den ich ja nicht habe !)

Ich finde es sehr sinnvoll Assembler zu lernen. Bei kleineren Sachen 
kommt man damit oft schneller zum Ziel als mit Basic oder C.

> JAVR-BASIC:
> + gratis
> + erzeugt asm-Code
> + inline asm
> - extra Assemblerlauf nötig
> - Doku
Es gibt ein paar PDFs auf 
http://www3.igalaxy.net/~jackt/software.htm#JAVRba...

- wird anscheinend nicht mehr weiterentwickelt

> BASCOM:
> + Demo gratis, nicht teuer
> + Buch verfügbar
> + sehr guter Support
> + tolle integrierte Entwicklungsumgebung
> + alles auf wenige Knopfdrücke
> - dzt. kein asm-Code im Listing, soll aber kommen
> - Umlernaufwand, wenn es mit dem AVR nicht
>   klappen sollte

Als ich die Demo das letzte Mal ausprobiert hatte kam mir der Compiler 
ziemlich buggy vor (vielleicht ist es aber inzwischen besser geworden).
Gerade für einfache Sachen ist aber ziemlicher Aufwand nötig. Hat ewig 
gedauert bis ich es geschafft hatte einfach ein Byte über das UART 
auszugeben... vielleicht hab ich aber auch einfach ein Problem mit Basic 
;-)
Ich finde dass Basic im Gegensatz zu C kein Grundprinzip hat das man nur 
einmal verstanden haben muss, sondern da gibt es bei jedem Compiler 
hunderte von widersprüchlichen und völlig unlogischen Befehlen und 
Konstruktionen die man alle "auswendig lernen" muss.

> GCC:
> + C-Code
+ guter Support (Mailingliste)
+ kostenlos
+ wird ständig weiterentwickelt
+ erzeugt kleinen Code
+ ...
+ ...
- keine IDE

> Lohnt es sich hier mit C anzufreunden,
> oder kommt man mit BASCOM schneller
> zu ähnlich guten Ergebnissen?

Ich finde es lohnt sich auf jeden Fall :-)

MfG
Andreas

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Nachtrag:

> ASSEMBLER ATMEL:

> - Debugger, der noch mit STK200 läuft woher?
>   (die neue Version fragt chip auf der STK500 ab,
>    den ich ja nicht habe !)

Der Debugger läuft auch ohne das STK500, nur wenn du den Controller 
direkt aus AVR-Studio heraus programmieren willst brauchst du das 
STK500. Zum Programmieren kannst du stattdessen  AVR-ISP nehmen.

MfG
Andreas

von Christian Fuchs (Gast)


Lesenswert?

Hallo,

Andreas Schwarz schrieb:
> > GCC:
> > + C-Code
> + guter Support (Mailingliste)
> + kostenlos
> + wird ständig weiterentwickelt
> + erzeugt kleinen Code
> + ...
> + ...
> - keine IDE

Also, hierzu eins: :-)

Gerade unter Linux gibt es viele freie "Entwicklungsumgebungen" ähnlich 
dem von dir vorgestellten "Ultra-Edit".
Viel mehr kann man meiner Meinung nach nicht verlangen-einfach klicken, 
dann wird es kompiliert, und dann per Multitasking zu Ponyprog 
gewechselt, und in den Controller geschrieben.

Noch was zum Thema Linux:
Für die ganze Micro-Controller-Programmiererei wollte ich eigentlich 
Windows 95 nehmen, aber nach dem 2. erfolglosen Installationsversuch 
(Blieb beim ersten Start nach der Installation immer stehen) habe ich 
halt Linux installiert, welches auf Anhieb zu installieren war (Gut, man 
benötigt schon Erfahrung sonst dauert es sicher länger).

Und auch hier klappt alles einwandfrei. Gut, zu Beginn hat es ne Weile 
gedauert, bis ich das erste Mal was programmiert hatte ;-)
(Ein Pin auf dem Steckbrett falsch "besteckt", auf dem ISP-Programmer 
(oder wie auch immer) die Masse vergessen), dennoch war nichts 
fulminantes, was nicht gehen wollte.

Also hier eine Ermutigung an alle, die sich mit Linux versuchen möchten 
;-)


ciao

    Christian

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Hallo Christian,

> > - keine IDE
>
> Also, hierzu eins: :-)
>
> Gerade unter Linux gibt es viele freie
> "Entwicklungsumgebungen" ähnlich dem von dir vorgestellten
> "Ultra-Edit".

Das stimmt schon, aber das ist trotzdem nichts gegen den Komfort von 
(z.B.) BASCOM. Eingebauter Programmer, Debugger,usw...
Das ist wohl auch der einzige Grund warum es überhaupt noch andere 
Compiler außer GCC gibt ;-)

>(Gut, man benötigt schon Erfahrung sonst dauert es sicher länger).

Oh ja! ;-) (ich erinnere mich mit Grauen an meine erste 
Linux-Installation zurück...)

> Und auch hier klappt alles einwandfrei. Gut, zu Beginn hat es
> ne Weile gedauert, bis ich das erste Mal was programmiert
> hatte ;-)
> (Ein Pin auf dem Steckbrett falsch "besteckt", auf dem
> ISP-Programmer (oder wie auch immer) die Masse vergessen),
> dennoch war nichts fulminantes, was nicht gehen wollte.

Welchen Assembler verwendest du?

MfG
Andreas

von Christian Fuchs (Gast)


Lesenswert?

Hi Andreas,

Andreas Schwarz schrieb:
[...]
> > Und auch hier klappt alles einwandfrei. Gut, zu Beginn hat es
> > ne Weile gedauert, bis ich das erste Mal was programmiert
> > hatte ;-)
> > (Ein Pin auf dem Steckbrett falsch "besteckt", auf dem
> > ISP-Programmer (oder wie auch immer) die Masse vergessen),
> > dennoch war nichts fulminantes, was nicht gehen wollte.
>
> Welchen Assembler verwendest du?

tavrasm. Gibt es überhaupt einen anderen für Linux? ;-)

BTW: Bei den ersten Kompilier-Versuchen hat tavrasm sich immer 
beschwert, weil irgendwas mit der "2313def.inc" nicht stimmte, weiß 
nicht mehr genau was...
Ich hab dann die Zeile auskommentiert, dann ging's einwandfrei!


ciao

    Christian

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Christion Fuchs schrieb:

> > Welchen Assembler verwendest du?
>
> tavrasm. Gibt es überhaupt einen anderen für Linux? ;-)

Sicher, siehe Linksammlung!

> BTW: Bei den ersten Kompilier-Versuchen hat tavrasm sich
> immer beschwert, weil irgendwas mit der "2313def.inc" nicht
> stimmte, weiß nicht mehr genau was...
> Ich hab dann die Zeile auskommentiert, dann ging's einwandfrei!

Stimmt, auf der Website von tavrasm steht der Grund.

MfG
Andreas

von matthias (Gast)


Lesenswert?

Hallo Andreas,

> Lohnt es sich hier mit C anzufreunden,
> oder kommt man mit BASCOM schneller
> zu ähnlich guten Ergebnissen?

 Ich finde es lohnt sich auf jeden Fall :-)

um am besten reinzukommen in eine neue Sprache/Programmierumgebung 
probier ich
die mitgelieferten Beispiele aus und bau
darauf durch Erweiterung mein eigenes
Programm auf.

Zu Bascom habe ich da einiges gefunden und
so lief es auch rasch.

Wo bekomme ich zu C eine ähnlich wertvolle
Sammlung an Beispielprogrammen her?
Hast Du sowas, das Du mir schicken könntest?

ADC, ser. SS mit/ohne Buffer, SPI, Arithmetik.

SuperMonster-Code oder ebensolche Bibliotheken
geht natürlich schlecht auf dem AVR.

Da hat Jack Tidwell ja wohl recht kleine hübsche
asm-Module geschrieben, die bei Bascom zum Teil
auch verwendet werden.

Gibt es Beispiele, wie man die auch mit C einsetzen
kann? Du gehts ja sicher noch auf einiges in Deinem
tutorial ein?

Gruss
  Matthias

von Claus Kühnel (Gast)


Lesenswert?

Direkt angepasst an den AT90S23x3 gibt es eine Überarbeitung meines 
Buchs zu BASCOM-AVR. Informationen (Inhaltsverzeichnis, Kapitel zum 
Schnuppern) sind in meiner Website zu finden.
Claus Kühnel
www.ckskript.ch
www.ckuehnel.ch

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.