1

Téma: měření teplot

Dobrý den,
na webové stránce v záložce Aktuální stav je teplota v rozsahu 0 až -1 zobrazována jako kladná hodnota, tj, např. -0,5 ze zobrazuje jako 0,5 a až od -1 se zobrazuje správně.

verze hw SoC-ARM REV4/5 100Mbit DF5, ze dne 26.3.2021

2

Re: měření teplot

Jaké SDS to je ?

Pochlubte se - popište jak využíváte své zařízení SDS zde ! Můžete si bezplatně přidat svou reklamu !

3

Re: měření teplot

Stejný problém jsem řešil na Macro LM. https://forum.sds.an-d.cz/viewtopic.php?pid=7070#p7070

4

Re: měření teplot

Skutečně ve zpracování výpisu chyběl kouske který by ručně doplnil znak "minus" pro rozsah teplot od [ -0.99 degC až 0.00 degC ].

Děkuji za nahlásení chyby, doplnil jsem unit testy.

Protože v SDS je toto (pseudokód reprezentuje jak se to tiskne):

int32_t celaCast;
uint32_t fracCast;

celaCast = temp100[pozice]  / 100;
fracCast = temp100[pozice] % 100;

printf("%d.%0.02u, celaCast, fracCast);

Jak lze vidět, funguje to spolehlivě pro všechny hodnoty mimo ten uvedený maličký rozsah.
Proč ? Protože -1 až -99 (celočíselně) děleno 100 je nula. A nule nemůžeme dát znaménko !

Takže pokud z teplotního čidla přišlo např. -0.5degC, což odpovídá hodnotě temp100 = -50 (protože všude to mále v miliDegC), tak se pak nejde divit že to pro takovou hodnotu tu znaménko nevytisklo.

Nový firmware je opraven, hlídá tento stav a znaménko správně dodatečně doplní.

Pozor ať neuděláte stejnou chybu, např. ve svém SDS-C / FULL-C programu, kde budete s temp100 také pracovat.

Pochlubte se - popište jak využíváte své zařízení SDS zde ! Můžete si bezplatně přidat svou reklamu !