Skip to content

氷点下が測れなかった #1

Description

@fmht

大変参考になりました。
ありがとうございます。
ところで、micro:bit + BME280(wehater:bit利用)で計測したところ、氷点下になると、100℃を超えてしまいました。python3では、intの変換でunsigned intとして扱われるようです。
別途、関数などを用意して、最上位ビットがONの場合には補数計算をした方が良いかもしれません。

当方では、こういった関数で変換しました。
コードは綺麗ではありませんが、ご参考になれば。


def getSingedInt( s, mask ) :
i = int ( s , 16 ) & mask
msb = ( ( mask << 1 ) & ~mask ) >> 1
if i & msb == msb :
return int( hex( ~i & mask ), 16 ) * -1
return i

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions