Probier einfach mal, "T" auch als single zu defininieren.
Mit gemischten Formaten hat es der Bascom nicht so.
Hallo,
ich will mit Bascom ein Temperatursensor einlesen und dann als Temperatur per RS232 ausgeben.
Ich habe die Kennlinie aufgenommen und in Excel in eine Formel umgerechnet. Aber da liegt das Problem. Ich weiß das ich pro Zeile nur eine Rechenoperation ausfüren darf.
Die ermittelte Formel:
y = 6E-05x2 + 0,1898x - 76,344
Teil eins rechnet er richtig. Aber bei Teil zwei habe ich das Problem, das er da immer auf die Falschen Werte kommt.Code:$regfile = "m16def.dat" $crystal = 8000000 $baud = 9600 Dim T As Integer Dim Teil_eins As Single Dim Teil_zwei As Single Dim Teil_drei As Single Dim Ergebnis As Single 'y = 6E-05x2 + 0,1898x - 76,344 T = 441 Teil_eins = 0.00006 * T Teil_eins = Teil_eins * T Teil_zwei = T * 0.1898 Teil_drei = Teil_eins + Teil_zwei Ergebnis = Teil_drei - 76.344 Do Print "T=" ; T Print "Ergebnis=" ; Ergebnis Print "Teil_eins" ; Teil_eins Print "Teil_zwei" ; Teil_zwei Print "Teil_drei" ; Teil_drei Loop
er sollte bei Teil_zwei = T * 0.1898 auf 83.701 kommen, aber er rechnet mir immer 41 aus (für T = 441).
Ich kann aber den Fehler nicht finden. Mit Kommas muss er ja rechnen, weil sonst würde bei teil eins ein falscher wert raus kommen.
Habt ihr eine Idee warum das nicht geht.
und noch ein Problem, wenn ich den Wert auf Singel stelle, kommt immer nur der Wert 220,5 raus. Wieso das? Single deckt doch einen großen Bereich und Kommastellen ab, oder?
thx Arno
Unser Wissen ist ein Tropfen, unser Unwissen ist wie ein Ozean.
Sir Isaac Newton
Probier einfach mal, "T" auch als single zu defininieren.
Mit gemischten Formaten hat es der Bascom nicht so.
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Wenn ich T als Single Single setze ist T immer 220,5. Egal was ich für eine Zahl übergebe.
Das macht mich so konfus.
Bisher hatte ich viel von Bascom gehalten. Aber das finde ich eine ganz schöne Schwäche.
Werde wohl auf eine Datentabelle umsteigen um die Werte zu bekommen.
Aber wenn noch jemand ne Idee hat. Immer her damit.
cu arno
Unser Wissen ist ein Tropfen, unser Unwissen ist wie ein Ozean.
Sir Isaac Newton
Jetzt habe ich dein Programm oben mit copy in den Bascom reingetan, ohne eine Pieps zu ändern und er rechnet ganz genau das aus, was er soll.
Da is woanders ein Wurm drin.
Falscher Ansatz. Zu 99.99 % prozent sitzt das Problem zwischen den Ohren und nicht im Computer.eine ganz schöne Schwäche
Is nur ein gutgemeinter Tip und keine Rüge. Kannst du auch gleich wieder vergessen, wenn du magst.
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Danke für deine Hilfe.
Jetzt weiß ich nicht wo mein Fehler liegt. Mist.
Heißt aber das mein Program funktioniert. Juhu
thx für deine Hilfe
cu Arno
Unser Wissen ist ein Tropfen, unser Unwissen ist wie ein Ozean.
Sir Isaac Newton
Na, dann mach es so wie ich Bascom->neues program und den obigen Code mit Copy reinstellen, kompilieren und simulieren.
(Aber wirklich genau so) Das gibt erst mal Vertrauen
Nehme an, das da oben ist nicht das vollständige programm und irgendwo anders zerschmetterst du deine Felder.
mfg robert
Wer glaubt zu wissen, muß wissen, er glaubt.
Is Richtig, das oben ist nur die Berechnung des Temperaturwertes aus dem ADC Wert.
Aber das Programm so wie ich es oben stehen habbe, habe ich einzeln in einem neuen Programm erstellt. Also das Programm oben ist mein Testprogramm. Dort wollte ich es testen weil im Hauptprogramm falsch gerechnet wurde. Aber auch im neuen Testprogramm ging es niccht.
na ich werde das nochmal checken.
thx arno
Unser Wissen ist ein Tropfen, unser Unwissen ist wie ein Ozean.
Sir Isaac Newton
Lesezeichen