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