arduino / arduino/ArduinoCore-API
Retrieve current pin mode
- 主要言語
- C++
- スター
- 306
- フォーク
- 150
- PR マージ指標
- 30日以内にマージされた PR はありません
説明
There is currently no function to get the current pin mode. A possible implementation is:
```
int pinMode(uint8_t pin)
{
if (pin >= NUM_DIGITAL_PINS) return (-1);
uint8_t bit = digitalPinToBitMask(pin);
uint8_t port = digitalPinToPort(pin);
volatile uint8_t *reg = portModeRegister(port);
if (*reg & bit) return (OUTPUT);
volatile uint8_t *out = portOutputRegister(port);
return ((*out & bit) ? INPUT_PULLUP : INPUT);
}
```
The return value is the pin mode or error code (-1) for illegal pin number.
Cheers!
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
調査の方向性
既存の pinMode API と、issue に示されている digitalPinToBitMask、digitalPinToPort、portModeRegister、portOutputRegister のエントリポイントから始めます。ハードウェア非依存の API がピン操作をどのように公開しているか、また各 core がそれらをどのように実装しているかを確認します。現在のピンモードを取得でき、指定されたモードが返され、無効なピンに対して -1 が返されれば完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- arduino, cpp
- 領域
- api, embedded-iot
- issue の種類
- 機能追加
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 35/100