Habe nur mal eine "kurze" Frage, möchte Temperaturen von -50°C bis +50°C messen, die "äußere" Schaltung ist soweit fertig, ob gut oder nicht weiß ich nicht, Auflösung soll/wird 0.5°C sein, jetzt meine Frage: Wenn ich negative Werte mit einem "-" anzeigen will, mache ich das dann am besten mit einer if-Abfrage? Also wenn der Wert kleiner ist als der für 0°C, dann Ausgabe "-" + Wert dahinter, ansonsten mit "+" oder halt ganz ohne? Oder gibt's da noch andere Möglichkeiten? Verwende einen mega8 mit Bascom als Programmiersoftware Danke für jede Hilfe!!
die Frage ist, womit du anzeigen willst. Es gibt Funktionen, die das auf Standard-Geräten (RS232 oder LCD) selbstätig machen (in C printf/sprintf), in Basic wirds was ähnliches geben. Auf nem Siebensegmentdisplay musst du das selbst machen, das nimmt dir der Compiler nicht ab (weiss ja auch wie angeschlossen und wie angesteuert).
Ich will es auf einem Display ausgeben, also einem LCD...ich denke aber mit der if-Abfrage ist es doch am einfachsten, oder nicht?
Warum sollte das am einfachsten sein? LCD str(zahl) Nach deiner Loesung: if zahl < 0 then lcd "-" zahl = zahl * -1 end if lcd zahl Ich kann daran nix einfaches finden. MfG
if zahl < 0 then lcd "-" zahl = zahl * -1 end if lcd str(zahl) So isses natuerlich richtig. Str() wandelt das Vorzeichen mit um. MfG
Was wäre denn dann einfach für dich? Und dein Beispiel verstehe ich auch nicht ganz... Ich würde es so machen: If Zahl < 0 Then Lcd "-" ; zahl Else Lcd zahl End if Also wenn der Wert "kleiner Null" ist, dann das "-" davor, ansonsten halt nicht... Was wäre denn noch einfacher?!?!
Hängt davon ab, in welcher Form deine Zahl jetzt überhaupt vorliegt !?
Ja, als Wert vom ADC, also grob geschätzt irgendwo zwischen ca. 600 und 800...und bei 700 wäre es dann +/- 0°C...also kleiner 700 => "-" davor, größer 700 => nix davor..
Guten Morgen, wie man nun auf das Ergebnis kommt, hängt ja von den mathematischen Fähigkeiten (heisst wohl jetzt "Skills") des jeweiligen ab. Darum musst Du dich also selber kümmern - bin ich zu blöd für. Aber wenn Du den Rückgabewert der Funktion als Integer deklarierst, formatiert der LCD-Befehl die Zahl automatisch mit Vorzeichen. Ist zumindest bei "meinem" FastAVR so. Bascom sollte sich da ähnlich verhalten, wage gesprochen. Viele Grüße, schönen Tag AxelR.
Mmmmh...mit deklarieren etc., das ist mir alles zu kompliziert... ;-) Ich mache es mit der if-Abfrage und gut ist...bevor ich mir da jetzt einen zurechthampel und so...hehe
Du ziehst einfach den Offset (bei 0°C anliegend) vom ADC-Wert ab. Dadurch wird der sich ergebende Integer automatisch positiv oder negativ und kann mit str() verarbeitet werden. MfG
Hää? Dim messegebnis as Integer wassn daran schwer? dann misst Du isoliert in Eiswasser und merkst Dir den ADC-Wert. Dann haust Du das Teil isoliert in kochendes Wasser und merkst Dir den ADC Wert (schreibst ihn Dir auf). So hast Du schonmal die Endpunkte. Das kannst Du nun mit dem gemessenen ADC Wert ins Verhältnis setzen und die untere Grenz abziehen(oder so?). Eigentlich, so wie andre sagte. Den Messwert für 0Grad vom ADC-Wert abziehen. die Variable, wo Du hineinspeicherst muss aber als Integer deklariert werden siehe oben. DIM MESSERGEBNIS AS INTEGER Kann ich nicht besser erklären, sorry (da such ich schon wieder bei mir...) AxelR.
Mmmmh...das klingt auf jeden Fall plausibel...ich denke so bekommt man auch die genauesten Werte hin, richtig? Ich denke dann werde ich mein Programm mal dementsprechend ändern, mal sehen ob ich das hinbekomme... ;-)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.