Arduino und Bascom-AVR (Elektor)

Kommt auf die Plattform an und was man genau lernen will. Auf einem µC ist C natürlich ideal.

Aber wenn man auf dem PC mit keinen bis wenigen Kenntnissen anfängt, bietet sich z.B. Java oder C# eher an wenn es nur darum geht erst mal allgemeine Prinzipien zu lernen. Solche Sprachen verzeihen einem eher typische Fehler, da man Exceptions bekommt und das Programm nicht einfach weiterläuft. Wobei auch Visual C++ bei manchen Fehlern zur Laufzeit abbricht.

Die Frage war Basic vs. C
Basic Kenntisse bringen bei evt. Umstieg auf C keine Vorteile.

Ich habe damals mit Pascal angefangen, später Delphi. Auch wenn ich Pascal immer noch für die schönere Sprache halte.
Die Welt spricht nunmal C(++) oder in deren Derivaten - Wenn man mitreden will muss man dies versuchen zu lernen.

Ein Argument für Bascom wird sein, das es leichter zu lernen ist.

Mit Basic sollte man heutzutage gar nicht mehr anfangen. Auch Visual Basic .NET existiert eigentlich nur noch aus historischen Gründen, weil es noch relativ verbreitet ist. Wenn die Industrie es nicht wollte (man will natürlich die Kosten für einen Umstieg nicht tragen) hätte man die Entwicklung schon eingestellt.

@Serenifly: 100% true !

Wir haben wohl das Problem von Karle etwas in den Hintergrund gebracht, war nicht meine Absicht. Sorry.

Karle:
Hallo zusammen,
auch ich habe mir den Elektor Kurs mal reingezogen. Leider ist ab Folge 3 schon Schluß mit lustig. Wenn man tatsächlich das erste Listing dieser Folge in den Arduino schießt, dann verweigert dieser anschließend jede weitere Programmierung. Bascom schmiert dabei komplett ab. Von Elektor gibt es außer Gelaber aber keine Hilfe. Die wissen anscheinend nicht einmal etwas von ihrem eigenen Einsteigerkurs.
Hier das kriminelle Listing. Also Finger weg von Elektor!!!
' --------------------------------------
'Uno_print_1.BAS
'---------------------------------------

$regfile = "m328pdef.dat"
$crystal = 16000000
$baud = 9600

Dim N As Byte

Do
Print N;
Print " Uno"
Waitms 1000
N = N + 1
Loop

Gruß Karl

Ich sehe vom Code her nichts kriminelles, macht ja auch nicht viel.
Kannst du mit der Arduino IDE Beispielcodes laden ? - Dann wäre Bootloader noch intakt.

Hallo,
mit "$regfile = "m328pdef.dat"" beschreibst Du die Register des µC.

Vielleicht hast Du ihn verfummelt- und mußt ihn "neu programmieren"
Was ist es denn für ein originaler Arduino- und funktinoiert die Arduino IDE noch mit dem selben?
Gruß und Glück
Andreas

Hallo,

ich habe zu elektor ein 2 geteiltes Verhältnis.
Die haben mir zwar damals mit der Vorstellung des Renesas R8C13 überhaupt den Weg zum µC geebnet, habe auch das Buch von Burkhard Kainka gekauft, allerdings hat sich das Thema dann für elektor auch schnell wieder eledigt. Auch dessen Forum ist nicht stark ausgeprägt. Die paar Profis die es einfach drauf haben, widmen sich leider schnell wieder etwas neuen zu. Sodass man als Einsteiger und Anfänger sehr schnell auf dem Schlauch steht. Von den Redakteuren darf man im Forum dort keine Hilfe erwarten.

elektor ist eine Redaktion, aus meiner Sicht, die immer nur neue Sachen vorstellt, manche auch mal näher in mehreren Artikeln beschreiben aber dann sofort weiterziehen. Es gibt keine Beständigkeit zu den vorgestellten Dingen. Wenn man selbst nicht in der Lage ist, die umfangreichen Datenblätter vom µC zu lesen und zuverstehen, dann kann man das sein lassen mit allen elektor Vorstellungen.

Deshalb sage ich auch, lass die Finger von solchen Insellösungen wie Bascom. Wenn man dazu noch im Mikrocontroller-Forum liest, dann liest man das man mit Bascom auch nicht sehr weit kommt. Ähnliche Programmiereinschränkungen wie Basic.

µC werden aus meiner Sicht nachwievor in C / C++ programmiert. Das ist einfach die Standardprogrammiersprache dafür.

So ein nettes hilfreiches Forum wie das hier habe ich schon lange nicht mehr gehabt. Das Mikrocontroller-Forum ist auch i.O., dort hat man aber mit der Arduino IDE nichts zu suchen. Die Jungs machen wenn dann alles mehr oder weniger mit C/C++ Programmierung aller µC.

Hallo zusammen,
vielen Dank für die Antworten. Jedenfalls seid ihr deutlich schneller wie Elektor. Von denen habe ich bis jetzt keine Antwort.
Aber was soll's.
Fazit ist in jedem Fall: Finger weg von BASCOM und Elektor. Das bringt nur Frust und Ärger.
Man lernt halt nicht aus.

Grüße Karl

Doc_Arduino:
So ein nettes hilfreiches Forum wie das hier habe ich schon lange nicht mehr gehabt. Das Mikrocontroller-Forum ist auch i.O., dort hat man aber mit der Arduino IDE nichts zu suchen. Die Jungs machen wenn dann alles mehr oder weniger mit C/C++ Programmierung aller µC.

Bezgl. des anderen Forums. Man muss da schon wissen was man schreibt. Bei sehr trivialen Fragen, die hier jedoch gestellt werden, wird man dort schnell belächelt. Wobei ich dem auch nicht widersprechen kann. Arduino ist u.a. für Künstler. Aber elektrotechnische Grundkenntnisse sollten auch hier vorausgesetzt sein.

Nutze das Forum selber aber nur sehr wenig. Meist geht es mir um deren Playground, welches in bestimmten Bereichen sehr ausführlich ist.

Bascom ist an sich nicht schlecht und ich glaube auch, dass das angeführte Elektor-Beispiel keinen Fehler enthält. Da muss irgendein anderes Problem vorliegen.
Das Mikrocontroller.net-Forum besuche ich auch gern, allerdings ausschließlich lesend. Dort werden Bascom-Nutzer ebenso belächelt wie Arduino-Bastler. Ich habe da immer das Gefühl, dass µc-Programmieren am besten weh tun muss, dass es als als solches ernstgenommen wird.

at#7
Ich habe ebenfalls eine blabla Antwort von Elektor bekommen. Ich habe angenommen , als der Arduino sich nicht mehr programmieren ließ, dass ich ihn heimgedreht habe. Aber: Mit den mitgelieferten Prgrammen von der ArduinoHP (+Treiber) lud ich das "Blink"-Programm in den Arduino und siehe, alles funkte wieder. Print stürzt "natürlich" wieder ab.
Als ich die Waitms von 200 auf 500ms erhöhte, funtionierte das Programm bei mir auch. Werde aber weiter Elektor auf die Nerven gehen.
LG

sth77:
Ich habe da immer das Gefühl, dass µc-Programmieren am besten weh tun muss, dass es als als solches ernstgenommen wird.

Der Spruch ist gut ! Glaube auch so muss es sein.

george30x:
Mit den mitgelieferten Prgrammen von der ArduinoHP (+Treiber) lud ich das "Blink"-Programm in den Arduino und siehe, alles funkte wieder. Print stürzt "natürlich" wieder ab.
Als ich die Waitms von 200 auf 500ms erhöhte, funtionierte das Programm bei mir auch. Werde aber weiter Elektor auf die Nerven gehen.

Hast du nun die Arduino IDE benutzt, oder Bascom ?
Teste einfach mal die C++ Beispiele mit der Arduino IDE und das läuft mit Sicherheit ohne Probs.
Und finde dich mit der Tatsache ab, das du die seltsame C++ Sprache lernen must :wink:

BTW:
Die Zeitschrift Elektor gibt es schon lange, kommt aus der Zeit als es noch nicht so um die µc Programmierung ging.
Damals war Elektor für mich als Elektronik Bastler die Bibel. Vorher war es die ELO, glaube das kennt keiner mehr - oder ?
Jedenfalls wundert es mich sehr, das Elektor Anfänger so abwürgt.

Elo hatte ich abonniert und immer noch einzelne Projekte in Ordnern abgelegt. Highligt war der Frequenzzähler den ich modifiziert nachgebaut habe, war glaub ich so 1980 ... ach ja ...

Highligt war der Frequenzzähler den ich modifiziert nachgebaut habe, war glaub ich so 1980

Den habe ich auch nachgebaut - das war der Alleskönner !

Der funktioniert bei mir heute noch .

@#19
Hi, habe zunächst Bascom verwendet, Programm Elektor: UNO_Print.BAS mit : Waitms 200.
Es gab keine Ausgabe am Terminalfenster und der Microprozessor ließ sich daraufhin nicht mehr mit einem anderen Elektor-Bascomprogramm laden. Led L leuchtete dauernd, Led Tx blinkte „sehr schnell“. Erst das Arduino IDE Programm: BLINK ausgeführt, holte den Prozessor aus dem Nirwana. Nach vielen Versuchen Bascom – IDE – Bascom . . ., kam ich dahinter, dass ein Waitms 500 auch das Bascomprogramm ordnungsgemäß funktionieren ließ.
Warum sich der Arduino mit den Bascomprogrammen nicht ordnungsgemäß initialisieren lässt, weiß ich nicht. Hoffe aber, dass Hr. Clemens VALENS von Elektor eine Erklärung findet.
Lg.

Programmiere in C, C++ und Bascom AVR sowie Arduino. Bascom hat den großen Vorteil, sehr ausgereifte Bibliotheken zu haben, die wirklich funktionen, z.B. für die verschiedenen Sleep-Modi - für den Arduino nicht interessant, aber für einzelne AVR-MC. Dazu kommen noch fertige Routinen für LCDs, Uhren usw. Für professionelle Ergebnisse ist BASCOM daher erste Wahl, auch wenn die IDE etwas altmodisch ist. Für den Einsteiger ist Arduino mit C++ sehr gut geeignet, kommt aber auch an seine Grenzen. Man sollte beide Systeme mal für ein konkretes Projekt ausprobieren, dann erkennt man die Stärken und Schwächen. Ideologische Ansätze (Basic ist out, C für Freaks, usw.) ist wohl eher Ausdruck mangelnder Erfahrung... man kann in allen Sprachen gut oder schlecht programmieren.

Zu Bascom kann ich nichts sagen. Habe es nie getestet, mir kam die Syntax nur etwas komisch vor.In Bascom sowie Arduino wirst du mit Libarys überflutet. Bei AVR-GCC ist dieses ebenfalls so, jedoch wird hier nicht so häufig eine Libary angeboten.
Genau dass ist der Grund, wieso ich mich derzeit eher mit AVR-GCC anstatt Arduino beschäftige. Ich möchte mich mehr mit der Hardware Programmierung selber beschäftigen. Und genau da bietet Assembler oder AVR-GCC die bessere Grundlage meiner Meinung nach. Assembler selber, muss ich eingestehen, habe ich so gut wie noch nichts gemacht und fast keine Kenntnisse.

Bzgl, erste Wahl für "professionelle" Anwendungen. Da finde ich weder Arduino, noch Bascom als ideal! Wer wirklich etwas im größeren Stil aufbauen möchte, der sollte zu AVR-GCC oder direkt zu Assembler wechseln.

"Ideologische Ansätze (Basic ist out, C für Freaks, usw.) ist wohl eher Ausdruck mangelnder Erfahrung... man kann in allen Sprachen gut oder schlecht programmieren." Das trifft es eigentlich auf dem Punkt! Was bringt einem ein BASCOM Projekt, was absolut ineffizent läuft, oder ein Arduino Projekt, was nur so überquillt von Delays oder Stringausgabe oder F-Makro.
Der effizente Code liegt meisten nicht an der Programmiersprache (ausser evtl. Assembler). Eher ist es die Anwendung selber aufgrund nicht ausreichender Kenntnisse. Ein Grund vermutlich, warum es den Arduino nie offiziel als Attiny Version gab :*

Hallo,

ich wüßte nicht was man heutzutage noch in Assembler programmieren müßte. Macht man doch alles in C/C++. Den Rest macht der Compiler. Ich meine, selbst in der Evoke Demoszene wird vorwiegend in C programmiert. Sollte man sich auch mal reinziehen, was da in 4kB Code drin steckt.

Evoke kenne ich nur vom hören sagen, kann es gerade aber nicht zuordnen.

Aber ich kann dir sagen, was man heut zutage immernoch zwingend/optimal in Assembler programmiert.
Unteranderem interessant für alle zeitkritischen Prozesse. z.B Bitbanging (WS2812B). Sicherlich auch in C möglich, doch die Effiziens wäre gleich oder üblicherweise größer.

Aber wie gesagt, bin kein Held im ASM Bereich. Mir sind sachen wie Nuloperation bekannt und damit hört es fast auf. Ein bisschen bekommt man aus den ATMEL DBs noch mit, aber nie getestet.

Hallo,

ich glaube die Meinung stammt noch aus Jahrzehnten vorher, wo Compiler noch nicht so gut waren wie heute. Selbst Grafikengines für Computerspiele werde vorwiegend nicht mehr in Assembler programmiert. :wink:

Die Evoke Demoszene ist ganz "verrückt". Wer die Demos nicht auf dem heimischen Rechner laufen lassen kann oder möchte, der kann sich auch die youtube videos anschauen. Unter "Links" bekommt man alles. Dabei muß man sich immer vor Augen halten, dass die Königsklasse alles nur in 4kB packen darf. http://www.heise.de/ct/heft/2014-20-Highlights-von-der-Demo-Party-Evoke-2014-2308355.html