Nachkomma stelle DS1820

Gast #842417
Lesenswert?

Mein Tipp:

Da ist eine Zeile

   ror temp1

da wird das Bit nach rechts rausgeschoben, welches dein halbes Grad 
enthält. Du könntest abhängig von diesem Bit nach der regulären Ausgabe 
einen Text ".0" oder ".5" ans LCD schicken.

Lass diese Großbuchstaben sein.
#843157
Lesenswert?

hallo,


> Da ist eine Zeile
>
>    ror temp1
>
> da wird das Bit nach rechts rausgeschoben, welches dein halbes Grad
> enthält.

aber wenn ich  diese zeile ausblende erhalte ich die doppelte 
temperratur oder mache ic da irgenetwas vekehrt.


Du könntest abhängig von diesem Bit nach der regulären Ausgabe
> einen Text ".0" oder ".5" ans LCD schicken.

aber dann verändert sich ja die Nachkommastelle nicht.

wäre nett wenn mir einer von euch ein bischen weiterhelfen könnte

mfg kay
#843188
Lesenswert?

Kay B. wrote:
> hallo,
>
>
>> Da ist eine Zeile
>>
>>    ror temp1
>>
>> da wird das Bit nach rechts rausgeschoben, welches dein halbes Grad
>> enthält.
>
> aber wenn ich  diese zeile ausblende erhalte ich die doppelte
> temperratur oder mache ic da irgenetwas vekehrt.

Tom sagt ja auch nicht, dass du nicht rausschieben (also durch
2 dividieren) sollst. Aber du kannst dir ja das niederwertigste
Bit vor dem rausschieben ansehen.
Ist es 1, dann lautet deine Kommastelle .5. Ist es 0 dann lautet
die Kommastelle .0.

> wäre nett wenn mir einer von euch ein bischen weiterhelfen könnte

Du denkst im Moment zu kompliziert.
In Pseudocode

   Merker = lowbit( temp1 )
   ror temp1
   temp1 ausgeben

   if Merker == 1
     ".5" ausgeben
   else
     ".0" ausgeben

Die Kommastelle wird nicht wirklich berechnet, sondern einfach
nur abhängig vom niederwertigsten Bit vor dem Verschieben als
.5 oder .0 an die bisherige Ausgabe angehängt.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren