On 08.12.2012 09:40, thomas.m.kai...@web.de wrote: > Hallo, > > Imho könnte man doch temp2text nutzen, da sind doch alle Fälle behandelt? > > Gesendet mit meinem HTC > > ----- Reply message ----- > Von: "Volker" <derklaut...@web.de> > An: <ethersex-devel@list.zerties.org> > Betreff: [ethersex-devel] 1w - DS18S20 - Problem negative Temperaturen > Datum: Sa., Dez. 8, 2012 08:13 > > > On 05.12.2012 00:16, Daniel wrote: > > Hallo, > > > > ich habe mir den entsprechenden Code jetzt mal angeguckt. Die Übergabe > > wird anders gemacht, daher tritt der besagte Fehler von 0 bis -1°C nicht > > auf. > > > > Der Fehler lässt sich einfach lösen. In ./hardware/onewire/ecmd.c in der > > function parse_cmd_onewire_get folgendes ändern: > > alt: > > ret = snprintf_P(output, len, PSTR("%d.%1d"), res.quot, res.rem); > > > > neu: > > ret = snprintf_P(output, len, PSTR("%d.%1d"), res.quot, abs(res.rem)); > > > > Irgendwie kann ich keinen neuen pull request senden, weil der alte noch > > offen ist. In meinem fork ist der Fehler korrigiert. Ich gucke mir das > > morgen mal an, wie ich nen zweiten pull request stellen kann. > > > > Auch wenn bei so einer kleinen Änderung eigentlich keine Fehler > > auftreten sollten; da ich keinen Sensor habe, kann ich nicht testen, ob > > das jetzt richtig funktioniert. > > > > Viele Grüße > > Daniel > > > > ret = snprintf_P(output, len, PSTR("%d.%1d"), res.quot, abs(res.rem)); > > funktioniert aber zwischen -0.1 und -0.9 Grad auch nicht, da das > Minuszeichen nur in Abhängigkeit von res.quot gesetzt wird. Für res.quot > = 0 ist das immer positiv auch wenn res.rem != 0. > > > Volker > > > _______________________________________________ > Ethersex-devel mailing list > Ethersex-devel@list.zerties.org > https://list.zerties.org/cgi-bin/mailman/listinfo/ethersex-devel
Ich dachte eher an so etwas: /* found it */ int16_t temp = sensor->temp; char m_flag = 0; if (temp < 0) { temp = -temp; m_flag = 1; } div_t res = div(temp, 10); ret = snprintf_P(output, len, PSTR("%s%d.%1u"), m_flag?"-":"", res.quot, res.rem); return ECMD_FINAL(ret); _______________________________________________ Ethersex-devel mailing list Ethersex-devel@list.zerties.org https://list.zerties.org/cgi-bin/mailman/listinfo/ethersex-devel