Forum

Einloggen | Registrieren | RSS  

Mikrocontroller (Elektronik)

verfasst von bastelix(R), 03.01.2018, 00:32 Uhr

» BASCOM kannte ich nicht. Und da gugg ich nun auch mal rein.
BASCOM ist ein BASIC-Dialekt für AVRs. Ich rate eher davon ab als µC-Einsteiger auf BASCOM zu setzten. Vorab, ich kenne BASCOM nur von der Beschreibung auf deren Webseiten und einigen Programmen über die ich im Internet gestolpert bin und versucht habe zu lesen aber ich kann BASIC (und noch viele andere Programmiersprachen).

BASCOM ist proprietär, hat keine große Community (auch wenn das sicher viele alte Hasen sehr erfolgreich einsetzten) dadurch kann man nicht auf das große Spektrum an fertigen Bibliotheken zurückgreifen wie es bei Arduino der Fall ist.

Zudem ist BASCOM eben ein BASIC-Dialekt und BASIC ist tot (auch VisualBasic ist nicht vergleichbar mit dem noch existierenden VisualBasic.NET, letzteres hat keine mit BASIC vergleichbare Syntax mehr) und BASIC ist nicht unbedingt eine Sprache mit der man menschenverständlichen Code schreibt. Schon der Zugriff auf PINs/Register ist in BASCOM für ungeübte sehr schwer lesbar, kein vergleicht zu den pinMode/digitalWrite/digitalRead-Funktionen aus dem Arduino-Umfeld. Natürlich kann man auch mit Arduino direkt die Ports in C/C++ ansprechen, was dann genau so schwer verständlich ist wie BASCOM-Code - wenn man das denn unbedingt will ;-)

Du hast geschrieben, dass du mit der Arduino IDE auch schon mal ein bestehendes Programm anpassen kannst aber beim umsetzten eigener Ideen in Code an deine Grenzen stößt. Ich würde eher sagen, dass du noch etwas das algorithmische Denken trainieren musst und etwas mehr Hintergrundwissen brauchst wie denn so ein Prozessor intern funktioniert. Welchen Unterschied machte es da eine andere Programmiersprache zu verwenden?

Einfaches Beispiel:

C/C++
if (Bedingung) {
MachWasIchWill;
}

BASIC/BASCOM
if Bedingung then
MachWasIchWill
end

Was du brauchst steht in dem Part "MachWasIchWill", das drumherum sind nur Kontrollstrukturen die halt von der Syntax der eingesetzten Sprache definiert werden aber nichts mit dem eigentlichen Ziel zu tun haben.

Ich würde dir eher die Lektüre des Buches "C als erste Programmiersprache: Vom Einsteiger zum Fortgeschrittenen" empfehlen. Das Buch erklärt die Grundlagen von C und wie das ganze mit dem Speicher (Heap/Stack) und so weiter funktioniert. Ich finde dieses Buch sehr gut, damit habe ich nicht nur C gelernt, sondern auch viel über die internen Abläufe in einer CPU. Auf der Ebene ist nicht so viel Unterschied zwischen einem AMD Ryzon 64Bit 3GHz und einem ATTiny85 8Bit 8MHz. Wenn du erst mal verstanden hast wie das intern auf der untersten Informatik-Ebene (da sind noch ein paar Abstraktions-Ebenen bis zur obersten E-Technik-Ebene dazwischen) dann kannst du auch deine eigenen Gedanken in Algorithmen formulieren und zu Code bringen.

Und wer jetzt einwenden möchte, dass das Buch nur C behandelt. Ja und? C++ wurde so entworfen, dass C eine gültige Untermenge der C++-Programmiersprache ist und die Arduino-IDE verwendet auch nur eine Untermenge von C++. Man kann in der Arduino-IDE auch wunderbar C-Code für den Arduino schreiben und compilieren. Wenn man erstmal etwas Übung mit C hat und algorithmisch denken kann hat man das bisschen Objektorientierung von C++ für den Arduino recht schnell nachgeholt (und selbst wenn nicht, sauber prozedural programmiert ist immer noch besser als objektorientiert-funktional-dahingewurstelt!) Wenn man dann vollständig C++ lernen möchte ist das doch etwas mehr Arbeit, aber darum geht es hier ja garnicht ;-)



Gesamter Thread:

Mikrocontroller - DH3FAA, 31.12.2017, 11:40
Mikrocontroller - xy(R), 31.12.2017, 11:44
Mikrocontroller - DH3FAA, 31.12.2017, 11:50
Mikrocontroller - xy(R), 31.12.2017, 12:20
Mikrocontroller - simi7(R), 31.12.2017, 13:30
Mikrocontroller - DH3FAA, 31.12.2017, 14:07
Mikrocontroller - simi7(R), 31.12.2017, 14:44
Mikrocontroller - xy(R), 31.12.2017, 14:54
Mikrocontroller - Sel(R), 31.12.2017, 15:02
Mikrocontroller - xy(R), 31.12.2017, 15:56
Mikrocontroller - Sel(R), 31.12.2017, 18:05
Mikrocontroller - xy(R), 31.12.2017, 19:46
Mikrocontroller - bastelix(R), 03.01.2018, 00:32
Mikrocontroller - Udo, 03.01.2018, 02:08
Mikrocontroller - xy(R), 03.01.2018, 08:27
Mikrocontroller - bastelix(R), 03.01.2018, 22:04
Mikrocontroller - xy(R), 04.01.2018, 17:45
Mikrocontroller - bastelix(R), 06.01.2018, 22:32
Mikrocontroller - bastelix(R), 03.01.2018, 01:14
Mikrocontroller - DH3FAA, 05.01.2018, 14:29
Mikrocontroller - bastelix(R), 06.01.2018, 23:27