arduino / arduino/ArduinoCore-API

map() for float data type

オープン
#71 コメント 18 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
C++
スター
306
フォーク
150
PR マージ指標
30日以内にマージされた PR はありません

説明

If a `float` argument is passed to the `map()` function, it truncates them to integer values. This provides erroneous output that may not be immediately noticed. This does not produce a compiler warning.

Please add a `float` variant of `map()`:

```cpp
float mapf(float value, float istart, float istop, float ostart, float ostop) {
return ostart + (ostop - ostart) * ((value - istart) / (istop - istart));
}
```

### Additional context

#### Additional reports

- https://dicks-photon-arduino.blogspot.com/2016/05/40-arduino-c-map-function-vs.html

#### Related

- https://github.com/arduino/Arduino/issues/288

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

調査の方向性

まず ArduinoCore-API にある既存の map() エントリーポイントを見つけ、数値の入力と出力をどのように処理しているかを確認します。float 専用のマッピング API が float 引数の小数値を保持し、既存の map() の動作を変更しなければ完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
cpp
領域
api
issue の種類
機能追加
難易度
3/5
見積もり時間
1〜2日
活発さ
停滞
明瞭さ
明確に書かれている
初心者へのやさしさ
45/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。