PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Error : 35 - 3 parameters expected



Powell
28.06.2007, 19:35
Hi,

Ich habe bei meinem Bascom Code einen Syntax-Fehler wenn ich in einer Zeile folgende Operation durchführen will:

T1r = 10 + 0.666 * (T1 - 233)

Error 35 - 3 Parameters expected.

Kann mir jemand erklären was dieser Fehler aussagt, wie ich ihn beheben kann und wo man evtl. eine Tabelle mit erklärungen zu den jeweiligen Fehlern findet?

recycle
28.06.2007, 20:58
Kann mir jemand erklären was dieser Fehler aussagt, wie ich ihn beheben kann und wo man evtl. eine Tabelle mit erklärungen zu den jeweiligen Fehlern findet?


Nicht wirklich, aber ich kann dir die Ursache für das Problem sagen.

Bascom kann nicht mit mehreren Rechenoperationen in einer Anweisung umgehen.
D.h. du musst die Anweisung in einzelne Schritte umschreiben, z.B.:

T1r = T1-233
T1r = T1r * 0.666
T1r= T1r + 10

Torsten_G
29.06.2007, 08:45
Hallo Paul,

was Recycle schreibt, ist sicher die Ursache für den Compiler-Fehler. Leider muß man in Bascom bei umfangreicheren Berechnungen über Zwischenschritte gehen.

Dabei ist es allerdings wichtig, die Verwendung der Zielvariable im Auge zu behalten: Wird sie in Unterprogrammen verwendet, die über Hardware- oder Timer-Interrupts angesprochen werden, sollte man lieber nicht in jeder Zeile der Berechnung die Zielvariable verändern, weil sie sonst unbrauchbare Werte beeinhalten kann. Schließlich weiß man nicht, an welcher Stelle im Programm ein Interrupt zuschlägt, das kann auch mitten in der Berechnung sein.

Dann lieber mit Zwischenvariable:

HelpVar = T1-233
HelpVar = HelpVar * 0.666
T1r= HelpVar + 10

Oder vor der Berechnung ein "Disable Interrupts"...

Grüße

Torsten

Powell
29.06.2007, 11:54
Hi,

Danke für eure auskünfte. Bin zwischenzeitlich auch auf die Idee mit Zwischenvariablen gekommen, allerdings habe ich dafür zwei verschiedene (A und B) verwendet. Aber wie man sieht reicht ja auch eine, bzw. auch gar keine (wenn man keine Interrupts hat). Das macht meinen Code wieder etwas platzsparender (hat mich 30% Flash gekostet für die zwei Variablen). Danke für die Tips