Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Re: kommazahlen Kategorie: Programmierung Basic (von Heino - 21.12.2006 12:47)
 Als Antwort auf Re: kommazahlen von Achim - 21.12.2006 2:17
> > > > wie kann ich wenn ich z.b. mit einem ptc eine temperatur messe auch kommazahlen anzeigen??
> > >
> > > Du zÀhlst weiterhin ganzzahlig, rechnest aber mit Zehntelgrad als Einheit. Statt z. B den Wert 21,5 (Grad Celsius) hat Deine Variable den Wert 215 (Zehntelgrad Celsius). Bei der Ausgabe kommt vor der Einerstelle dann ein Komma.
>
> > uhmm wie mach ich das denn genau..... und wie kann ich minus zahlen anzeigen....
>
> Nehmen wir an, Dein PTC liefere am AD-Port Werte von 0 bis 255 die Temperaturen von -12,8(0) bis +12,7 (255) Grad Celsius bei einer Genauigkeit von 0,1°C entsprÀchen. Also 0 entsprÀche -12,8°, 1 -12,7, usw.
>
> Dann kopierst Du das Byte in ein (vorzeichenbehaftetes) Word und ziehst 128 ab. 0 wird also zu -128, 1 zu -127, usw. 128 zu 0, 129 zu 1, usw. bis 255 zu 127. Du hast jetzt also die Temperatur in 0,1° in der Variablen inklusive Vorzeichen.
>
> Jetzt mĂŒssen wir die Zahl nur noch kommabereinigt ausgeben.
>
> print temperatur/10;",";abs(temperatur) mod 10
>
> HTH
>
> Bye
>  Achim


Zum selben Ergebnis wie Achim ( Umkopieren in eine Variable vom Typ  WORD) fĂŒhrt auch eine etwas andere Überlegung :
 Ein einzelner Messwert ist mit einem Fehler behaftet.Das kommt u.a. von den Quantisierungsstufen der AD-Wandler. Der arithm. Mittelwert aus n Messwerten ist nur noch mit 1/n des Fehlers behaftet. Wenn's also genauerer sein soll , addiert man zunĂ€chst mal 4 oder 8 oder 16 Messwerte (Max 128) BYTE-Werte  vom Wandler in einer WORD-Variablen auf. Danach dividiert man durch die Anzahl Messwerte -vorteilhaft unter Anwendung der Funktion "shl". Alles Andere dann so , wie Achim es schon beschrieben hat.
Bei diesem Verfahren gewinnt man zusÀtzliche Stellen mit geringen Fehlern. Je nach der gestellten Messaufgabe (!) entfÀllt dadurch sogar der Zwang , einen Wandler höherer Auflösung zu betreiben.
 
Gruß..................................Heino

 Antwort schreiben

Bisherige Antworten: