Predstavitev števila tipa float z 8 biti

programski jeziki in programiranje

Moderator: tilz0R

Predstavitev števila tipa float z 8 biti

OdgovorNapisal/-a MocnikG » 08 Mar 2017, 13:55

Pozdravljeni,

naredil sem si vmesnik, ki izračuna temperaturo iz izmerjene ADC vrednosti (10 bitov), temperaturo predstavim v tipu float.
Sedaj pa bi moral prek SPI poslati vrednost temperature, ki je velika 8 bitov.

Zanima me najenostavnejša predstavitev izračunane temperature z 8 biti.

Kako bi se je vi lotili?
Hvala za pomoč.
Uporabniški avatar
MocnikG
 
Prispevkov: 303
Pridružen: 18 Maj 2015, 18:56
Kraj: Koroška - MB - CE
Zahvalil se je: 26 krat
Prejel zahvalo: 26 krat
Uporabnika povabil: s55ei
Število neizkoriščenih povabil: 2

Re: Predstavitev števila tipa float z 8 biti

OdgovorNapisal/-a s54mtb » 08 Mar 2017, 14:04

Najprej poglej obseg temperatur. Primer:

najnižja temp., ki jo boš prenašal: -20
najvišja: +40

razlika je 60, torej rabiš 6 bitov. Ostaneta ti še dva. torej si lahko "privoščiš" enote 1/4 stopinje.

Zdaj pa malo matematike:
pri oddaji:
float temperaturi najprej prištej 20 (bo šlo od 0 to 63)
potem pomnoži s 4
vzemi celi del in prenesi

na sprejemni strani pa obrni:
najprej deli s 4
potem odštej 20

gtako boš najbolj "spakiral"

Jaz sem si pred časom naredil pretvornik za "half precision float". Po standardu sicer obstaja (zasede 16 bitov), vendar ga večina c prevajalnikov ne zna uporabljat.
https://en.wikipedia.org/wiki/Half-prec ... int_format
s54mtb
 
Prispevkov: 7889
Pridružen: 15 Jan 2015, 01:10
Zahvalil se je: 1012 krat
Prejel zahvalo: 2521 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 46


Vrni se na Software

Kdo je na strani

Po forumu brska: 0 registriranih uporabnikov in 1 gost

cron