Forum: Mikrocontroller und Digitale Elektronik Rechnen mit Bascom


von Daniel (Gast)


Lesenswert?

Hallo zusammen,

ist es mit Bascom tatsächlich nicht möglich mehr als eine
Rechenoperation in "einer Zeile" durchzuführen ??

x = a + b
x = x * c
das klappt.

x = (a + b) * c
klappt nicht !!

Dies Beispiel ist ja noch problemlos zu lösen, wenn jedoch eine
aufwendige Formel durchlaufen werden muss, kann die Sache recht
unangenehm werden.

Wisst ihr mehr ??

Daniel

von Matthias (Gast)


Lesenswert?

Hi

geht nicht.

Matthias

von Rufus T. Firefly (Gast)


Lesenswert?

Du hast eine der wesentlichen Beschränkungen von Bascom entdeckt.
Damit leben oder einen anderen Compiler verwenden - ob der andere
AVR-Basic-Compiler diese Einschränkung nicht aufweist, entzieht sich
jedoch meiner kenntnis.

von Daniel (Gast)


Lesenswert?

Rufus,

welcher wäre denn "der ander Compiler" ??

Daniel

von Ratber (Gast)


Lesenswert?

Yo,ich kenn nur Bascom für AVR und 51er und die Lightversonen dazu.

Gibbet da noch was ?


@Daniel

Über diesen Umstand hab ich mich auch schon geärgert aber in anderen
Compilern ist es nicht oder nicht viel besser wenn du komplexere
Formeln verwenden willst.

Sei froh das du für Bascom die Formel nur in einzelne Rechenschritte
zerlegen und dich nicht auch noch um andere Geschichten kümmern mußt.
Is doch schon was oder ? ;)

Zum Zerlgen von Formeln gabs mal irgendwo ein kleines Programm das
genau auf diesen Umstand zugeschnitten war (Ja,es gibt auch noch in
anderen Umgebungen dieses Problem) und dir eine Formel in Mundgerechte
Teile zerlegt die du dann nurnoch einsetzen mußt.

Frag mich nur nicht wo ich das gesehen habe.
Einfach mal etwas die Suchmaschinen treten

von Peter D. (peda)


Lesenswert?

"welcher wäre denn "der ander Compiler" ??"


Z.B. irgend ein C-Compiler (WIN-AVR).

Unter C gibt es keinerlei Beschränkung, aber der Lesbarkeit wegen
sollten Zeilen nicht länger als 2000 Zeichen sein.

Es gibt aber Wettbewerbe für den unleserlichsten C-Code, da werden
komplette Programme in nur eine Zeile geschrieben.

Rein von der Syntax her kennt C gar keine Zeilenumbrüche, man kann
schreiben:

i = 10;

oder:

i
=
10
;

da ist kein Unterschied.

Nur der Preprozessor benötigt und erkennt Zeilenumbrüche, z.B. für
Macro-Definitionen:

#define BLABLA 5


Peter

von Andreas Hesse (Gast)


Lesenswert?

Hallo,

es gibt noch FASTAVR.

Ich habe jedoch keine Erfahrung damit.

Gruss
Andreas

von Norbert L. (Gast)


Lesenswert?

Das ist wohl auch ein AVR-Basic-Compiler: http://www.fastavr.com/

von thkais (Gast)


Lesenswert?

Bei Bascom wurde wohl zugunsten des Speicherplatzes auf einen
Argumenten-Stack verzichtet, deshalb geht nix mit verschachtelten
Rechenoperationen. Man kann eben nicht alles haben.
Falls das in C geht, dann eben auf Kosten des Speichers - irgendwo muß
es ja hin.
Aber wo ist das Problem, eine Formel aufzusplitten ?

von Matthias (Gast)


Lesenswert?

Hi

???
Ob jetzt der Compiler eine Formel aufsplittet oder der Anwender dürfte
für den erforderlichen Speicherplatz (auf dem Zielsystem) keine Rolle
spielen. Der Compiler muß halt etwas intelligenter sein.

Matthias

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.