Forum: Mikrocontroller und Digitale Elektronik Alternative zu Bascom


von Lui (Gast)


Lesenswert?

Hallo,

ich habe meine AVR-Controller bisher in Assemlber mit AVR-Studio 
programmiert.

Nun habe ich mal Bascom getestet und war sehr begeistert. Nur leider bin 
ich dann sehr schnell an die 4k grenze in der Demo von Bascom gekommen.
Was gibt es so an kostenlosen/Preisgünstigen "höheren Sprachen" als 
Assembler um AVR Controller zu Programmieren?
Bascom ist ja sehr simpel und schnell zu verstehen. Ich habe in der 
Hilfe einfach alle "Befehle" die es gibt alphabetisch aufgelistet mit 
beschreibung und codebeispiel.


Vielen Dank für eure Hilfe!!

von Sven P. (Gast)


Lesenswert?

Die absolute Standardsprache? C!

von roboter (Gast)


Lesenswert?

....Bascom ist ja sehr simpel und schnell zu verstehen....

Aber nur wenn das compilat läuft!

Bei Bascom wird soviel intern rumgewurschtelt, was der Anwender nicht 
mitbekommt.

von Dominique G. (dgoersch)


Lesenswert?

Ich nutze auch Bascom und finde es ist sein Geld wert, die Onlinehilfe 
ist sehr umfassend. Komme Entwicklungstechnisch eh aus der Basic-Ecke 
(VB, VBA, .NET) und fand mich daher in Bascom sehr schnell zurecht. Die 
nächste "Investition" werden wohl zusätzliche Module sein. Ein paar 
Macken hat Bascom allerdings schon...

Als kostenlose Alternativen gibt's wohl nur Assembler oder C mit WinAVR 
und GCC.

von Lukas (Gast)


Lesenswert?

Hmm, wer die Wahl hat, hat die qual...

Gibt es denn für Gründe nicht Bascom zu nehmen und auf C um zu steigen?

von Sven P. (Gast)


Lesenswert?

Lukas wrote:
> Hmm, wer die Wahl hat, hat die qual...
>
> Gibt es denn für Gründe nicht Bascom zu nehmen und auf C um zu steigen?

Abgesehen davon, dass C Industriestandard ist, es dafür freie Compiler 
gibt, man unendlich flexibler ist, als mit BASIC und die Programme noch 
dazu schneller ablaufen können, nein.

von ich (Gast)


Lesenswert?

wie wärs wenn du mal die suchfunktion nutzt=

der "krieg" wurde schon hundertfach ausgetragen..

von %%% (Gast)


Lesenswert?

>der "krieg" wurde schon hundertfach ausgetragen..
Schlachten wurden geschlagen, aber der Krieg dauert noch an.

von Lukas (Gast)


Lesenswert?

Ok, ich denke es ist am besten, wenn ich mir selber ein Bild davon mache 
und dann entscheide, was ich bevorzuge.

Was brauche ich denn um mal einen Test zu machen (z.B. erstmal ein 
"Blink-LED-Porgramm" schreiben) und mich in die Grundlagen 
einzuarbeiten?

Ich habe mal AVR-GCC runtergeladen und istalliert. Nun kann ich in 
AVR-Studio ein "C-Programm" für meinen ATMega8 schreiben und 
Compelieren?

Vielen Dank für eure Hilfe!


Gruß, Lukas.

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Lukas wrote:

> Gibt es denn für Gründe nicht Bascom zu nehmen und auf C um zu steigen?

# Preis

BASCOM kostet Geld. Bei C gibt es sowohl kostenpflichtige als auch 
kostenlose Versionen.

Der Preis für gute Tools kann sich allerdings relativieren, wenn man 
seine Entwicklungszeit mitrechnet. Ein dazugekauftes Modul kann 
letztlich preiswerter sein als eine Eigenentwicklung.

# Offenheit

Wie die Befehle/Module von BASCOM intern arbeiten ist entweder im Manual 
dokumentiert oder nicht. Wenn nicht, kann man nicht so einfach in der 
Source nachsehen, wie die Arbeitsweise ist.

Bei C (AVR GCC) ist der Einblick in die Sourcen möglich.

# Mein Fazit

Ich bin Hobbyist und rechne meine Entwicklungszeit nicht, sondern 
verbuche das unter Spass und Neugier.

So gesehen machen fertige, kostenpflichtige Tools und Module keine 
Punkte und closed source behindert mich.

Daher benutze ich meistens AVR GCC und die BASCOM-Demo gelegentlich bei 
Themen aus dem Forum.

von Sinusgeek (Gast)


Lesenswert?

Tja, BASCOM hat Suchtpotential, wer einmal angefixt ist, der kommt davon 
nur schwer wieder weg. Um damit effiziente Programme zu schreiben, muss 
man aber BASCOM (und ASM) schon verdammt gut verstehen. Denn 
Programmieren ist mehr, als nur ein paar (meist unverstandene) 
vorgefertigte Bausteine zusammenzuschieben und sich dann zu wundern 
warum die Hexdatei so groß und das Programm so langsam ist.

Nein, ich verteufele BASCOM nicht, kann aber gut darauf verzichten. ;-)

~

von Alex W. (a20q90)


Lesenswert?

Hallo,

also ich nutze C und BASCOM gewerblich!

C nutze ich nur um Eindruck zu schinden. Bascom nutze ich um schneller 
ans Ziel zu kommen. Ich finde Bascom auch sein Geld wert!

Ich habe mit Bascom schneller einen fertigen Programmcode gehabt als mit 
C.

C ist natürlich Industriestandard, aber wir geben die Codes unserer 
Projekte ja nicht raus. Dem Kunde ist es meistens egal mit was man 
Proggt, hauptsache das Ziel wird erreicht.

von Sven P. (Gast)


Lesenswert?

Alex W. wrote:
> C ist natürlich Industriestandard, aber wir geben die Codes unserer
> Projekte ja nicht raus. Dem Kunde ist es meistens egal mit was man
> Proggt, hauptsache das Ziel wird erreicht.

Ist ihm das denn auch egal, wenn es sich dabei um sicherheitsrelevante 
Dinge handelt? Automotive! Automation!

Ist Sicherheit gefordert, bist du mit BASCOM vermutlich GANZ schnell an 
der Wand, denn da kann niemand reingucken und verifizieren.

von Michael A. (micha54)


Lesenswert?

Hallo,

hat schon mal einer daran gedacht, mit C zu arbeiten, um dann bei der 
nächsten Bewerbung das mit auf die Liste seiner Fähigkeiten zu setzen ?

Insofern würde ich persönlich jede private Herausforderung was neues zu 
lernen annehmen, Basic kann ich auf Arbeit benutzen.

Gruß,
Michael

von Lukas (Gast)


Lesenswert?

Ok, vielen Dank für eure Antworten und ich denke ich werde mir C einfach 
mal anschaun.
Dann kann ich erstens auf meiner Bewerbung reinschreiben "Grundlegende 
Kenntisse in C" und zweitens kann ich mich dann selber entscheiden, was 
ich toller finde oder gar mit beidem arbeiten.
Also an dieser Stelle schon ein mal DANKE!!

Nun stellt sich mir die Frage, wie fange ich nun an.
Am schönsten ist natürlich eine fertige IDE wo der Compiler Debugger 
Editor etc. alles mit drin ist.

Was ist denn nem Anfänger wie mir am besten zu empfehlen?
- Ich arbeite mit Windows Vista (bitte keine kommentare dazu).
- Ich besitzte einen AVR-ISP mit ich aus AVR-Studio (und Ponyprog rein 
theoretisch auch) auf jedenfall den ATMega8 bespielen kann.

Vielen Dank!

Lui

von TestX .. (xaos)


Lesenswert?

Lukas wrote:
> Was ist denn nem Anfänger wie mir am besten zu empfehlen?
> - Ich arbeite mit Windows Vista (bitte keine kommentare dazu).
> - Ich besitzte einen AVR-ISP mit ich aus AVR-Studio (und Ponyprog rein
> theoretisch auch) auf jedenfall den ATMega8 bespielen kann.


AVR Studio + WinAVR

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Lukas wrote:

> Dann kann ich erstens auf meiner Bewerbung reinschreiben "Grundlegende
> Kenntisse in C"

DAS würde ich auf keinen Fall reinschreiben.

Grundlegende Kenntnisse hat man, wenn man mal ein Buch zu C 
durchgeblättert hat.

C Kenntnisse alleine locken auch keinen hinterm Ofen hervor. Wenn das da 
steht muss IMHO dabeistehen, wozu das C eingesetzt wurde. Also 
"Kernelprogrammierung unter Linux" oder "Programmierung von 
Mikrokontrollern Typ XYZ"...

von Sven P. (Gast)


Lesenswert?

Lass den Mikrocontroller zum Einstieg erstmal weg -- da sind noch zu 
viele Fehlerquellen drin.

Installier dir GCC-Packete oder installier MinGW oder sowas und fang 
erstmal mit Konsolenprogrammen auf dem Computer an. Dadurch schließt du 
schonmal 90% der möglichen Fehler beim Programmieren von MCU aus, und 
kannst dich mehr auf C konzentrieren.
1
#include <stdio.h>
2
3
int main(int argc, char *argv[]) {
4
  printf("Bummsfallera\n.");
5
  return 0;
6
}

von Lukas (Gast)


Lesenswert?

Stefan B. wrote
>C Kenntnisse alleine locken auch keinen hinterm Ofen hervor. Wenn das da
>steht muss IMHO dabeistehen, wozu das C eingesetzt wurde. Also
>"Kernelprogrammierung unter Linux" oder "Programmierung von
>Mikrokontrollern Typ XYZ"...

Ok werde ich berücksichtigen, also eher sowas wie:
Grundlegende Kenntnisse in AVR-Programmierung in C


Andi D. wrote
>AVR Studio + WinAVR

Ok installiert habe AVR Studio und WinAVR inzwischen. Wenn ich nun ein 
neues Projekt erstelle wähle ich dann einfach AVR-GCC aus?

Im AVR-GCC Tutorial von hier steht am anfang:

Vorausgesetzt werden Grundkenntnisse der Progammiersprache C. Diese 
Kenntnisse kann man sich online erarbeiten, z. B. mit dem C Tutorial von 
Helmut Schellong. Nicht erforderlich sind Vorkenntnisse in der 
Programmierung von Mikrocontrollern, weder in Assembler noch in einer 
anderen Sprache.


Gibt es sowas auch genau umgekehrt??? Grundkennttnisse in der 
Programmierung von Mikrocontrollern in Assembler und einer anderen 
Sprache habe ich, aber gar keine in C.

Vielen Dank!
Lui.

von Karl H. (kbuchegg)


Lesenswert?

Lukas wrote:
> Ok installiert habe AVR Studio und WinAVR inzwischen. Wenn ich nun ein
> neues Projekt erstelle wähle ich dann einfach AVR-GCC aus?

Ja, ganz genau.
Was auch sonst?

> Programmierung von Mikrocontrollern in Assembler und einer anderen
> Sprache habe ich, aber gar keine in C.

Dann fang am besten, wie Sven Pauli schon sagte, damit an deine ersten 
C-Programme am PC zu schreiben und zu testen. Auch dafür gibt es freie 
Entwicklungsumgebungen. Du vertrödelst sonst ne Menge Zeugs, bis die 
C-Grundlagen so einigermassen sitzen. Wenn du die dann hast, kannst du 
ziemlich leicht auf den µC umschalten.
Am Anfang musst du dich an die C-Syntax gewöhnen, ein paar Konzepte 
lernen etc. Und das geht am PC mindestens genausogut, wenn nicht besser, 
als am µC. Der Grund dafür ist einfach: Du hast bessere 
Debug-Möglichkeiten.

von Lukas (Gast)


Lesenswert?

Ok, kann ich mir dann auch Visual C++ 2008 benutzen? Oder ist das dann 
was völlig anderes?

von guest (Gast)


Lesenswert?

> Nun kann ich in AVR-Studio ein "C-Programm" für meinen ATMega8 schreiben
> und Compelieren?
Kurz und knapp, Ja. Rest siehe AVR-Tutorial [Assembler und mehr
Hardware] und AVR-GCC-Tutorial [C und weniger Hardware].
Viele hier im Forum würden dir empfehlen mit Assembler an zu fangen,
ich meine, "C passt scho'!". ;-)
> Ok, kann ich mir dann auch Visual C++ 2008 benutzen?
Äh, wäre mir neu, aber WinAVR bietet auch viel Komfort.

P.S.: Hast du dir schon mal die Tutorials und die Artikel hier
angeschaut, da werden schon viele deiner Fragen abgearbeitet.
http://www.mikrocontroller.net/articles/Spezial:Allpages

von Sven P. (Gast)


Lesenswert?

Lukas wrote:
> Ok, kann ich mir dann auch Visual C++ 2008 benutzen? Oder ist das dann
> was völlig anderes?

Ne, da steckt wieder .NET und MFC und all son Krimskrams dahinter.
Benutz den ganz nackten GCC für Windows, der kompiliert dir schon das 
Progrämmchen, das ich dir oben angehängt hab...

von Karl H. (kbuchegg)


Lesenswert?

Sven Pauli wrote:
> Lukas wrote:
>> Ok, kann ich mir dann auch Visual C++ 2008 benutzen? Oder ist das dann
>> was völlig anderes?
>
> Ne, da steckt wieder .NET und MFC und all son Krimskrams dahinter.

Die Gefahr besteht natürlich.
Aber wenn er sich immer an die simpleste Variante hält und bei jeder 
Auswahl immer die nimmt, bei der 'Konsole' in irgendeiner Form vorkommt 
und alle Anfragen des Wizards nach irgendwelchen Dingen, die er für den 
Programmierer erledigen soll, mit 'Nein' beantwortet, dann kann er das 
durchaus nehmen, wenn ers schon auf der Maschine hat :-)

von Karl H. (kbuchegg)


Lesenswert?

guest wrote:

>> Ok, kann ich mir dann auch Visual C++ 2008 benutzen?
> Äh, wäre mir neu, aber WinAVR bietet auch viel Komfort.

Es geht darum, dass er seine ersten Schritte in C auf dem PC und nicht 
auf dem µC macht. Du weist schon: Basic-Syntax, Variablen, gewöhnen an 
Datentypen, erste Schleifen, erste Funktionen und so'n Zeugs.

von Chris (Gast)


Lesenswert?

Wenn jemand daran interessiert ist, ich habe einen Basic->C Translator,
der das Basic vom Pic übersetzen kann, sowie einige Erweiterungen.
Ist recht flexiebel. Wenn jemand bereit ist, daran Hand anzulegen,
stelle ich die Bins sowie Support gerne zur Verfügung. Source leider 
nicht.
Ev. gibt es genug basic->C translatoren auf Unix, welche ev. auch 
funktionieren.

von Karl H. (kbuchegg)


Lesenswert?

Ist eher witzlos, da der grosse Vorteil von BASCOM (welcher gleichzeitig 
auch sein Nachteil sein kann) darin besteht, dass es die Hardware soweit 
abstrahiert, dass ihm beispielsweise nur noch mitteilst, dass du ein LCD 
an diesen und jenen Pins hast und BASCOM kümmert sich um den Rest. 
Selbiges für Servos und was weiß ich noch alles.

D.h. BASCOM lebt und stirbt damit, dass es eine Menge Peripherie von 
Haus aus kennt, ohne dass du gross was machen musst.

von Chris (Gast)


Lesenswert?

Ja, das macht der Pic Basic compiler auch. Deshalb, es braucht ein paar
Libs in C, damit das Basic problemlos compiliert wird.
Denke, viel ist schon in den Procyon AVRlib enthalten, also bräuchte es
wirklich nicht viel Arbeit, um das Anzupassen.

von guest (Gast)


Lesenswert?

>>> Ok, kann ich mir dann auch Visual C++ 2008 benutzen?
>> Äh, wäre mir neu, aber WinAVR bietet auch viel Komfort.
> Es geht darum, dass er seine ersten Schritte in C auf dem PC und nicht
> auf dem µC macht.
>
Das hätte ich da so jetzt nicht rausgelesen... Naja, er muss das draus
machen was er will... ;-)
> Du weist schon: Basic-Syntax, Variablen, gewöhnen an Datentypen, erste
> Schleifen, erste Funktionen und so'n Zeugs.
Ne, zumindest Basic-Syntax ging an mir vorüber. ;-)

von Lukas (Gast)


Lesenswert?

Ok, Vielen Dank für die schnellen und umfangreichen Infos!!
Ich schau mir C in den nächsten Wochen mal ein bisschen an und werde 
dann berichten!!

von Michael A. (micha54)


Lesenswert?

Sven Pauli wrote:
> Lukas wrote:
>> Ok, kann ich mir dann auch Visual C++ 2008 benutzen? Oder ist das dann
>> was völlig anderes?
>
> Ne, da steckt wieder .NET und MFC und all son Krimskrams dahinter.
> Benutz den ganz nackten GCC für Windows, der kompiliert dir schon das
> Progrämmchen, das ich dir oben angehängt hab...

Hallo,

aus eigener Erfahrung muss ich leider feststellen, daß Visual C++ wenig 
mit Standard C++ wie es unter Gnu läuft zu tun hat.
Mit andern Worten, wenn Microsoft einen Standard erstmal in die Finger 
bekommt, dann wars das.

Wollte nur mal so meine Applikation nach VC++ portieren, aber selbst die 
Headerfiles hätte ich komplett umschreiben müssen.

Aber mal im Ernst: AVR-Studio ist eigentlich brauchbar, vor allem weil 
man die Ausführung mit dem Simulator auch gleich austesten kann.
D.h. wenn die LEDs nicht so blinken wie sie sollen, dann läßt sich das 
nachvollziehen.

am Anfang sind die logischen Operatoren in C tödlich, der Gebrauch von & 
und && sowie || und | verwirtt, aber man kann das lernen.

Gruß,
Michael

von Dominique G. (dgoersch)


Lesenswert?

Michael Appelt wrote:
> [...], aber man kann das lernen.

Gutes Stichwort... gibts hier brauchbare Literatur die einen C-Neuling, 
aber erfahrenen Programmierer nicht zu tode langweilt? Ich hab mich 
schon ein paarmal rangesetzt und wollte C (und auch C++) lernen, aber 
nach 3 Lektionen isses mir zu dumm und ich schmeiss es wieder in die 
Ecke.

Mich interessiert hier Lern-Literatur für C generell und im speziellen 
natürlich für C auf den AVRs.

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.