Forum: Mikrocontroller und Digitale Elektronik Mit Bascom programmieren


von Andi (Gast)


Lesenswert?

Hi,

ich würde gerne wissen, wieso man bei der Microcontrollerprogrammierung
Basic oder auch Pascal einsetzt.
Ich will hier keinen Glaubenskrieg entfachen, möchte bloß die Meinung
der Leute hören.

von Paul Baumann (Gast)


Lesenswert?

Ich nehme an, weil sich diese Sprachen leichter als andere erlernen
lassen. :-)

MfG Paul

von akw (Gast)


Lesenswert?

Warum setzt man den C ein?? Genau so eine Frage...

von inoffizieller WM-Rahul (Gast)


Lesenswert?

Weil es Leute gibt, die schon gewisse Kenntnisse in einer dieser
Programmiersprachen besitzen (und meinen, die könnte man "einfach so"
auf Mikrocontroller übertagen.).

Gegenfrage: Was spricht dagegen, sie einzusetzen?
Hochsprachen sind grundsätzlich für den Menschen einfacher zu lesen
(auch wenn Hannes und ein paar andere Leute sich mit Assembler wohler
fühlen ;) Assembler ist ja auch schon eine Art Hochsprache im Gegensatz
zu einzelnen Bits...

von jojansen (Gast)


Lesenswert?

Also, ich hatte zu Berufschulzeiten mit Asm den 8085 programmiert. War
ganz ok. Als ich dann vor einiger Zeit anfing mich mit den AVR zu
beschäftigen, hatte ich schnell gemerkt, daß bei ASM der eingesetzte
Hirnschmalz nicht im Verhältnis zum Ergebnis stand. So bin ich auf
Bascom gekommen und war sofort begeistert. Es macht schon Spaß, sich
auf die eigentliche Programmstruktur konzentrieren zu können ohne per
ASM das Rad immer wieder neu erfinden zu müssen, Stichwort Bibliotheken
und viele mächtige Befehle. Was ich bisher gemacht habe, möchte ich um
keinen Preis in ASM realisieren müssen.
Was wohl ein kleiner Nachteil sein kann, ist, daß man mit ASM den Code
schön eindampfen kann (wenn man es kann und Ahnung hat) und bei
Hochsprachen auf die Fähigkeiten des Compilers angewiesen ist.
Was ich wirklich mag, ist die Ideen 'einfach' runterschreiben zu
können ohne mir einen abbrechen zu müssen.
Wenn ich demnächst hoffentlich wieder etwas mehr Zeit zum rumspielen
habe, werde ich mich aber auch mal mit 'c' beschäftigen.
Happy Coding!!!!
:-) Johannes

von Marc M. (bytewood) Benutzerseite


Lesenswert?

>Weil es Leute gibt, die schon gewisse Kenntnisse in einer dieser
>Programmiersprachen besitzen (und meinen, die könnte man "einfach
so"
>auf Mikrocontroller übertagen.)

Bis zu einem gewissen Grad geht das auch...

Wenn man in einem Projekt unter großen Zeitdruck steht und darauf
angewiesen ist möglichst schnell zu entwickeln, dann kann Bascom/BASIC
schon ne Hilfe sein (leicht zu erlernende Syntax - wenn man sie eh
schon kennt - BASIC eben!, fertige Libs für LCD, UART, uvm.).
Da kann man ein Programm recht schnell "runterrotzen".

Ob man da den Controller wirklich kennenlernt - ist dabei eine gaaanz
andere Frage.
BASCOM/BASIC ist schon so weit von der Hardware weg, dass das
Verständnis für den Controller in den meisten Fällen auf der Strecke
bleibt. (Meine Meinung dazu - ich progge in Bascom und C)

von Sebastian Heyn (Gast)


Lesenswert?

Bascom ist an sich ziemlich brauchbar. es sind viele funktionen zum
umgang mit zahlen und ausgaben über rs232 dabei. LCD ansteuerung etc.
und weil das preis/leistungsverhältniss und der support stimmt. klar c
ist kostenfrei, aberfür den anfang ist basic einfach einfacher

von Carsten P. (papa_of_t)


Lesenswert?

Ich hab schon in mehreren Sprachen inkl. Assembler und Maschinencode PCs
und uCs programmiert - Alles hatte so in bestimmten Bereichen seine
Berechtigung: Assembler meist, wenn das Programm SEHR schnell oder SEHR
klein sein muß, Hochsprachen eher für PCs. BasCom ist stark, wenn man
schnell fertig werden muß und für's Prototyping. Man muß nicht ewig
nach der richtigen Bibliothek suchen und mit 1 bis 2 Programmzeilen
kann man ein LCD ansteuern oder eine Variable ins EPROM schreiben. Ein
kleiner Nachteil in meinen Augen ist die Tatsache, daß es etwas unklar
ist, wieviel Stack / frame man für bestimmte Funktionsaufruf-Tiefen
braucht.. aber das gilt nciht nur für BasCom.

von Andi (Gast)


Lesenswert?

ich sehe halt die ganze Sache durch die Brille eines C-Programmierers,
da kommt mir die Syntax von Basic oder Pascal einfach grotesk vor,
sieht irgendwie zusammengeschustert aus.

von Carsten P. (papa_of_t)


Lesenswert?

Mehrere Brillen sind manchmal von Vorteil, z.B. um ein Status-Flag
abzufragen.. :-)

Was liest sich besser oder sieht grotesker aus:

1) while(!(SPSR & (1<<SPIF))){};

oder

2) Do : Loop Until SPSR.SPIF = 1

oder (das geht auch direkt in Bascom, läuft aber schneller)

3)    !loop1:
      !sbis spsr,spif
      !rjmp loop1

von dr. know (Gast)


Lesenswert?

bitwait SPSR.SPIF, set
müsste in bascom doch auch gehen

von inoffizieller WM-Rahul (Gast)


Lesenswert?

@Andi:
Das war wohl ein Eigentor...

von Andi (Gast)


Lesenswert?

O.K. was mir in C gefällt sind die Pointer. Wie löst man das Problem mit
Basic?

von Michael Wilhelm (Gast)


Lesenswert?

1) while(!(SPSR & (1<<SPIF))){};

oder

2) Do : Loop Until SPSR.SPIF = 1

Aber, was verbirgt sich hinter dieser Schleife?

Auf einem PC mag das egal sein, aber auf der Controllerebene...
ich weiss nicht. 90% meiner Programme sind Echtzeitprogramme mit ein-
und ausgehenden Daten. Da muss man auch mal sehen, wie Bascom die Zeile
2 umsetzt. Wenn es rein ums leserliche geht, wäre Pascal eine
Alternative. Hat sich bei uns aber nicht durgesetzt.
@ Carsten, zeig uns mal das Kompilat (heisst das so?).

MW

von Carsten P. (papa_of_t)


Lesenswert?

Pointer: Es kommt zwar auf den Zweck an (.. den ich bei Dir nicht
kenne), aber da gibt's in Bascom geeignete, zielführende Befehle:
LoadAdr, LoadLabel, Cpeek u.a. / oder man benutzt ein Array und greift
mit einer Indexvariable darauf zu:

Dim myArray(256) as Byte
Dim index as Byte

index = 1
myArray(index) = &HFF

usw.

Ist eben auch 'ne Geschmackssache..

Kompilat: es kommt ein Hexfile 'raus, da hab ich noch nie
'reingeschaut. Bei 3) ist klar, was 'rauskommt, ist ja Assembler. Bei
2) weiß ich es nicht genau, aber ein Durchlauf dauert geschätzt nicht
mehr als 20 Takte - kann also soo wild aufgebläht nicht sein.. Wenn Du
es untersuchen willst, kannst Du 'ne kostenlose Demo von Bascom
'runterladen und beobachten, wieviele Takte vergehen, Hexfile
analysieren usw.

von zotos (Gast)


Lesenswert?

Ich programmiere Mikrocontroller (AVR) in C da ich C gewöhnt bin und die
Hilfe und Dokumentationen dafür sehr umfangreich sind, man hat Beispiele
in hülle und fülle--> das macht C für mich zu der einfacheren Sprache.
Auf dem PC aus Gründen die mit Faulheit bezeichnet werden könnten
benutze ich VB bzw. VBA da MS Office nun mal nicht mit C sondern mit
VBA ausgestattet wurde. Was mich zu der Frage bringt: Warum ist
OpenOffice mit so einem Basic verschnitt ausgestattet worde und nicht
mit C?

Gruß
zotos

von joe (Gast)


Lesenswert?

hallo, muss ein programm schreiben um mit einer siemens photo diode eine 
lichthelligkeitsmessung durchzuführen,(LUX)

hat jemand eine ahnung davon? wie ich den sensor programmiert bekomme? 
arbeite mit einem atmega8535

von Marc M. (bytewood) Benutzerseite


Lesenswert?

Ja, per ISP - was den Controller angeht.
Keine Ahnung, wie man eine Diode programmiert :-)

von Besucher (Gast)


Lesenswert?

Hallo,
Zu Frage nach dem Compilat,

http://www.roboternetz.de/wissen/index.php/Codevergleich_AVR-Compiler

Hier hat schon jemand versucht C gegen Basic zu vergleichen...

Leider waren die Basicleute nicht in der Lage alle Beispiele 
auszufüllen,
aber ich glaube es reicht das eine Beispiel aus.

Gruß Sebastian

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.