Forum: Mikrocontroller und Digitale Elektronik Frage in C --- Temperaturmessung


von Ferrice (Gast)


Lesenswert?

Hallo Leute!

Hätte eine frage und zwar,

habe den Temperaturwert in einer Variablen abgelegt.
Kann ihn auch wunderbar auf dem LCD ausgeben, nur bei Temperaturen
unter null °C da bleibt die anzeige stehen.
Wie kann ich bei einer Variablen auslesen ob sie negativ oder positiv
ist.??

bitte um hilfe

mfg
Ferrice

von crazy horse (Gast)


Lesenswert?

??? zu wenig input.

von Peter Dannegger (Gast)


Lesenswert?

Rück mal nen Stück zur Seite, damit ich mit auf Deinen Bildschirm gucken
kann (die Webkam hinter Dir).


Peter

von Chris (Gast)


Lesenswert?

> Wie kann ich bei einer Variablen auslesen ob sie negativ oder positiv
> ist.??

if(x < 0) { /* x ist negativ */ }
else { /* x ist nicht negativ */ }

Das war jetzt aber nicht dein Ernst, oder?

von Klaus (Gast)


Lesenswert?

Hat wohl eine fertige Routine verwendet, die er selbst nicht verstanden
hat. Wenn die keine negativen Werte verarbeitet -> Pech.

von Ferrice (Gast)


Lesenswert?

was heißt fertige routine??

Hab mir die ganzen Formeln selber überlegt und das ganze programm
selber geschrieben.

naja..

von Schoaschi (Gast)


Lesenswert?

Wenn du vl dein programm posten würdest und vl auch noch die güte
hättest und uns sagen würdest wie du die temp mißt dann wäre ich dir
verbunden ;-)

wär vl etwas einfacher dir dann bei deinem problem zu helfen ;-)

von Peter Dannegger (Gast)


Lesenswert?

"Hab mir die ganzen Formeln selber überlegt und das ganze programm
selber geschrieben."

Hast Du jetzt wirklich gedacht, ich hätte ne Webkam bei Dir um mal auf
Deinen Code schauen zu können ?

Nein !!!


Du must schon was herzeigen und genau dazu ist ja die Funktion
"Dateianhang" da.


Peter

von Ferrice (Gast)


Angehängte Dateien:

Lesenswert?

Gut hier mein code.

Fall jemand noch verbesserungsvorschläge hätte... (in vereinfachung)
immer her damit..

danke

ferrice

von Schoaschi (Gast)


Lesenswert?

dein schreibstil in C ist etwas eigenartig und verwirrend muss ich schon
sagen.

zb (rein mein empfinden):
if (calc<=10)   //wenn der wert kleiner 100 ist wird b auf 1 gesetzt
       {c=1;}

warum schreibst du nicht einfach:
if (calc<=10) c=1;

?????

warum so kompliziert?
calc=(5/(float) 1023)*x; //errechung des spannungswertes
calc=(calc* (float) 100)-273.15;

 das tut es ja auch oda etwa nicht?
calc=((500/(float) 1023)* x)-273.15;

Kennt der Compiler den du verwendest die funktion sprintf??
wenn ja dann würd ich dir diese funktion dringenst empfehlen ;-)
 dann sieht das ganze , wenn ich mich nicht irre so aus:

sprintf(LCDbuffer,"Temperatur: %f°C",calc);

falls er das Grad-Zeichen nicht erkennt musst du das halt auch mit rauf
kopieren.

ich hoffe ich konnte helfen. sorry wegen der kritik ;-)

von Ferrice (Gast)


Lesenswert?

hmm ja mit sprintf hab ich noch nie was gemacht!!

ja winavr halt:D

falls jemand eine literatur über sprintf hat bitte her damit..

danke

mfg

von Schoaschi (Gast)


Lesenswert?

Ich programmiere zur zeit PICs und bei mir in der Hilfe wird der befehlt
wie folgt erklärt:

SPRINTF()

Syntax:
 sprintf(string, cstring, values...);

Parameters:
 string is an array of characters.

cstring is a constant string or an array of characters null terminated.
 Values are a list of variables separated by commas.

Returns:
 Nothing

Function:
 This function operates like printf except that the output is placed
into the specified string.  The output string will be terminated with a
null.  No checking is done to ensure the string is large enough for the
data.  See printf() for details on formatting.

Ich kann dir es leider nicht sagen wie es bei deinem Compiler funzt.
sorry

von Schoaschi (Gast)


Lesenswert?

Welches LCD benutzt du? also wieviele spalten und wieviele zeilen hast
du? und wie soll die ausgabe dann am LCD aussehen?

ich hoffe ich verwirre dich nicht :-)

von Alex (Gast)


Lesenswert?

sprintf hat nix mit WinAVR zu tun, das ist Standard-C.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.