www.mikrocontroller.net

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


Autor: Ferrice (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
??? zu wenig input.

Autor: Peter Dannegger (Gast)
Datum:

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


Peter

Autor: Chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Klaus (Gast)
Datum:

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

Autor: Ferrice (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
was heißt fertige routine??

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

naja..

Autor: Schoaschi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ;-)

Autor: Peter Dannegger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Ferrice (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Gut hier mein code.

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

danke

ferrice

Autor: Schoaschi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ;-)

Autor: Ferrice (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Schoaschi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Schoaschi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 :-)

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sprintf hat nix mit WinAVR zu tun, das ist Standard-C.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.