- LiTime Speicher und Akkus         
Ergebnis 1 bis 4 von 4

Thema: Error : 35 - 3 parameters expected

  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    17.01.2006
    Ort
    Homberg (Efze)/Nordhessen
    Alter
    38
    Beiträge
    207

    Error : 35 - 3 parameters expected

    Anzeige

    Powerstation Test
    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?
    Grüße Paul

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.01.2004
    Beiträge
    2.441
    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

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    25.02.2005
    Beiträge
    175
    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

  4. #4
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    17.01.2006
    Ort
    Homberg (Efze)/Nordhessen
    Alter
    38
    Beiträge
    207
    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
    Grüße Paul

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test