Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Wichtig: Bevor Du wegen einem Problem mit der CC2 postest, stelle sicher, daß Du
die neueste OS-Version, die neuseste Compiler-DLL und die neuesten Modulversionen benutzt!
Beachte, daß sich auf der CD zur CC2-Unit/Station auch jetzt noch die ältesten Dateien befinden!
Es gelten folgende Anleitung und Regeln: Regeln CC2Net.de-Forum
Zurück zum Artikel  (Blaue Felder sind Pflichtfelder)


Name:   UserID: 
 E-Mail:
Kategorie
Betreff
Homepage:
Link-Titel:
Link-URL:
Cookie für Name, UserID, E-Mail, Homepage-URL setzen
(Erspart die Neueingabe bei Beiträgen und Antworten)
(Zum Löschen des Cookies hier klicken)
Ich nutze:
C-Control II Unit
C164CI-Controllerboard
C-Control II Station
CCRP5 mit CC2-Unit (Conrad Roboter)
CC2-Application-Board
CC2-StarterBoard
CC2-ReglerBoard
eigenes Board
original OS     OSOPT_V2     OSOPT V3.0 OSOPT V3.1

Kommentar:
Einfügen von HTML im Kommentar:

Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a>
Bild einfügen: <img src="BILDURL">
Text formatieren: <b>fetter Text</b>  <i>kursiver Text</i> <u>unterstrichener Text</u>
Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b>
C2 Quellcode formatieren: <code>Quellcode</code>
ASM Quellcode formatieren: <asm>Quellcode</asm>
(Innerhalb eines Quellcodeabschnitts ist kein html möglich.)
Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst !  

> > Hallo m8_nix, > > > > > ich sehe grade diese Funktion kann so nicht funtzen.... vielleicht liegt ja darin schon deine > > > fragende Haltung begründet? > > > Dadurch das sich im long-Format die Werte 105625 (10,5625°C) und 106 (10,6000°C) nicht Exponentiell > > > von einander unterscheiden lassen (fehlende Nachkomma "Nullen") wird im vorliegendem Fall der letztere > > > Wert "10,6°" tatsächlich niedrieger "angesehen" als der in wirklichkeit Niedrigere (10,5625°) > > > > Wie kommst Du denn darauf ? Das stimmt nämlich nicht. > > Du weißt schon, was ein Festkommainteger ist, oder? > > Wenn mit <code>ds1631.readl()</code> ein Wert ausgelesen wird, hat dieser > > immer vier Nachkommastellen. Keine mehr, und keine weniger. > > Ein Festkommainteger ist nur eine Anwenderdefinitionen, bei der der Anwender selbst > > wissen muß, wo das Komma sitzt. > > Es ist einfach eine Kommazahl, die um den Faktor 10, 100, 1000 usw. multipliziert wurde. > > Im Fall readl() kann man die Einheit hundertstel Mikrograd nennen, > > was vier Nachkommastellen entspricht. > > Falls es den Wert 10,6000° beim DS1631 wirklich geben würde, ist das bestimmt > > nicht der Rückgabe wert 106, sondern 106000 oder in Worten huntertundsechstausend. > > Aber gehen wir von Werten aus, die vorkommen können. (vielfaches von 0,0625K) > > Nehmen wir also die Temperaturen 10,5625°C und 10,6250°C an. > > Als Festkommainteger sind das die Werte 105625 und 106250. > > Wenn Du nun von den 106250 die 105625 abziehst, erhälst Du 625. > > Und das sind 0,0625K. > > > > Also denke bitte nicht unnötig kompliziert. > > Die Sache ist ganz einfach. > > Darum habe ich bei der CC2 auch die Festkommainteger in Mode gebracht, da > > diese meist einfacher handhabbar sind, als Float-Zahlen. > > (Und deutlich weniger Rechenzeit benötigen) > > > > Allerdings hast Du mit einem recht. Deine Funktion kann nicht funktionieren: > > <code>long t1, t2; > > float tdelta; > > function build_diff() returns float; > > { > > t1=ds1631.readl(0); // 0=Adresse des ersten Sensors > > t2=ds1631.readl(1); // 1=Adresse des zweiten Sensors > > tdelta=t2-t1; > > }</code> > > > > Du hast ein Semicolon nach dem "returns float" in der Funktionsdefinition. > > Das ist nicht zulässig. > > Dann gibst Du keinen Wert in der Funktion zurück. > > Somit ist der Rückgabewert immer 0. > > Und dann mach es keinen Sinn die Differenz der Festkommaintegerwerte t1 und t2 > > in einem Float zu speichern, da ein Festkommawert für einen Float keine Kommazahl darstellen. > > Du müsstest Deine Funktion dann folgendermaßen umschreiben: > > <code>long t1, t2; > > float tdelta; > > function build_diff() returns float > > { > > t1=ds1631.readl(0); > > t2=ds1631.readl(1); > > tdelta=(t2-t1)*0.0001; // Festkommainteger mit 4 Nachkommastellen > > // in Floatumrechnen > > return tdelta; > > }</code> > > > > MfG André H. > > > > > Hallo, > > ich nehme alles zurück und behaupte das Gegenteil André. > Tut mir leid für das unnötige Falschposting. > Man sollte eben so spät Nachts nichts mehr posten > > Chris
Dateianhang: (.gif, .png., .jpg, .zip, .rar)
max. 256kB
max. 256kB