
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
||
|
Hallo, für einen Energiezähler habe ich eine Quase-Integration des Stroms eines DC-Verbrauchers geschrieben. Auf der CC1 hat das alles wunderbar geklappt, läuft jetzt seit einem halben Jahr ohne Probleme. Nun hab ich ne neue CC1 V2.2 und das Update auf 2.3 durchgeführt, um Zeiger benutzen zu können. Ebenfalls benutze ich zum Programmieren Basic++ von Stefan Tapperzhofen. Leider bemerke ich, dass manche mathematische Operationen einfach falsch ausgeführt werden. So liefert "mod" einer negativen Zahl nix negatives, ebenso bekomme ich bei den einfachsten Verschachtelungen große Unterschiede in den Ergebnissen: BSP: function Integral() 'Durchschnitts aus Is (aufsummierte Stromwerte über eine Minute (60 stück)), if Ig < 0 then Iav = Iav - (Abs(Ig) / IntegralCount) print "Iav " & Iav Ig = (Abs(Ig) Mod IntegralCount) Ig = -Ig else Iav = Iav + (Ig / IntegralCount) print "Iav " & Iav Ig = (Ig Mod IntegralCount) end if 'Rest in Iav speichern if Iav < 0 then Eg = Eg - (Abs(Iav) / 60) Iav = (Abs(Iav) Mod 60) Iav = -Iav else Eg = Eg + (Iav / 60) Iav = (Iav Mod 60) end if print "Rest Ig " & Ig print "Rest Iav " & Iav 'Counter resetten IntegralCount = 0 end function Woran liegt das? Ist Basic++ noch so buggy? Ich bin drauf angewiesen, wegen Zeigern und Funktionen! Aber so ist das natürlich nix... Kann mir jemand helfen? Gruß Manuel |
| Antwort schreiben |