PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Rechnen mit Bascom



atvler
21.05.2006, 15:29
Hallo zusammen.

ich möchte mir eine Wetterstation bauen mit dem SHT11 Sensor,
jedoch scheitere ich an einfachen Formeln mit denen Bascom nicht umgehen kann.
z.B.
Eingabe =100 + (1 * 10)
etwas größer für den Sensor
RH=((shtvalue*10+12)/24*35/36) - 40 - (((shtvalue+50)/100)*((shtvalue+50)/100)/4*9/8)

Fehlermeldung bei beiden Formeln 3 parameters expected

Die Formeln funktionieren mit anderen Basicderivaten und mit dem
Taschenrechner.

Wer kann mir hier weiterhelfen.

Vielen Dank .
Walter

pebisoft
21.05.2006, 15:47
das ist bascom:
du kannst nur immer 1 sache ausführen.

Eingabe =100 + (1 * 10) : so nicht!!!!!!!!!!!!!!!

eingabe=1*10
eingabe=eingabe+100

RH=((shtvalue*10+12)/24*35/36) - 40 - (((shtvalue+50)/100)*((shtvalue+50)/100)/4*9/

diese formel in bascom treibt dich zum wahnsinn............................
der helle wahnsinn......................................

atvler
21.05.2006, 15:59
Hallo pebisoft,

danke für den Hinweis.
Da muss ich wohl in den sauren Apfel beissen und das ganze in
Einzelschritte zerlegen (uahhh...).

Einen schönen Tag

pebisoft
21.05.2006, 16:11
oder du proggst mit winavr-c

Hanni
21.05.2006, 17:14
Oder in Assembler .. aber da bekommste bei so ner Formel echt einen Weg :lol:

Aber im Ernst ... wenn er es in Bascom machen will, soll er es tun ...

Das Ergebniss wird sich nicht wesentlich von dem unterscheiden was WinAVR C ausspuckt ...

izaseba
21.05.2006, 17:43
Es stellt sich nur die Frage, ob man diese Formel nicht einfacher hätte schreiben können...
So was scheit danach in einer ISR eingesetzt zu werden :-)

Gruß Sebastian

Windi
21.05.2006, 20:57
das ist bascom:
du kannst nur immer 1 sache ausführen.

Eingabe =100 + (1 * 10) : so nicht!!!!!!!!!!!!!!!

eingabe=1*10
eingabe=eingabe+100

Das kann doch nicht so schwer sein so etwas ordentlich zu implementieren.
Das konnte ja sogar mein oller C64 problemlos. Und der hatte nur einen Basic-Interpreter und keinen Compiler.

-tomas-
22.05.2006, 07:53
Ich hatte mich früher auch gewundert, dass Bascom keine Formeln auflöst, wo dass unendlich viele fertige Bibliotheken dazu gibt.
Jetzt denke ich, dass es eine erzieherische Maßnahme ist, um die AVR-Ressourcen zu schonen...

pebisoft
22.05.2006, 11:33
Jetzt denke ich, dass es eine erzieherische Maßnahme ist, um die AVR-Ressourcen zu schonen.....

stimmt nicht..........................................!!! !!!!!!!!!!!!!!!!!!
in winavr-c geht es wunderbar und verbraucht weniger speicher bei der formel als nach der aufsplittung in bascom.
auch mit fastavr-basic ist der code der gesamtformel immer noch kleiner als bei bascom.

Hanni
22.05.2006, 11:38
@ Pebi:

Was zu beweisen wäre ....

izaseba
22.05.2006, 20:39
Was zu beweisen wäre ....

schau mal da (https://www.roboternetz.de/wissen/index.php/Codevergleich_AVR-Compiler)

Man kann es zwar nicht mit dieser MEGA Formel von oben vergleichen, aber ein Ansatz ist gemacht, vielleicht findet sich noch ein Bascomer, der die Beispiele weiter ausfüllt, damit man mal was weiter Schwanzvergleich machen kann.

Gruß Sebastian

Hanni
22.05.2006, 21:39
Hmm, danke izaseba,

allerdings ist es nunmal so, das ein Compiler nicht wirklich wissen kann, was ein User von ihm denn nun will.
Ich behaupte daher, das es nicht nur eine Sache des Compilers, sondern auch der Formelaufbereitung ist.

izaseba
22.05.2006, 21:50
Ja sicher,

Habe auch schon etwas weiter oben von gesprochen.


Es stellt sich nur die Frage, ob man diese Formel nicht einfacher hätte schreiben können...

Ich Programmiere auch ganz gerne in Assembler, und muß sagen, daß ich mir wohl ein Paar Gedanken um die Formel von oben machen würde, so kann das kein Mensch programmieren :-) .

Ich will hier Basic nicht schlecht reden, aber glaub mir gcc kann ganz dichten Code erzeugen, hab mich schon selber davon überzeugt.

Gruß Sebastian