Arduinoで遊ぶページ

Arduinoで遊んだ結果を残すページです。
garretlab
mapResolution()

mapResolution()

概要

AD変換の結果の分解能を変換します。

ソースコード

mapResolution()は、hardware/arduino/sam/cores/arduino/wiring_analog.c に定義されています。以下に全ソースコードを示します。

static inline uint32_t mapResolution(uint32_t value, uint32_t from, uint32_t to) {
        if (from == to)
                return value;
        if (from > to)
                return value >> (from-to);
        else
                return value << (to-from);
}

入力は、valueとfrom、toの3個です。すべてuint32_t型の変数です。valueの値をfromビットからtoビットに変換します。

fromとtoが同じときは変換の必要はないのでvalueをそのまま返却します。

fromがtoよりも大きいときは、(from-to)ビット右シフトすることで、下位ビットを切り捨てます。fromがtoよりも小さいときは、(to-from)ビット左シフトすることで、下位ビットに0をパディングします。

バージョン

Arduino 1.5



メニューを表示するためにJavaScriptを有効にしてください。

Arduinoで遊ぶページ
Copyright © 2013 garretlab all rights reserved.
inserted by FC2 system