arduino / arduino/ArduinoCore-API

Retrieve current pin mode

オープン
#179 コメント 4 件 リアクション 13 件 担当者 0 名 GitHub で見る
enhancement
主要言語
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

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

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