arduino / arduino/ArduinoCore-API
Retrieve current pin mode
- Vorherrschende Sprache
- C++
- Sterne
- 306
- Forks
- 150
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
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!
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Rechercherichtung
Beginne mit der bestehenden pinMode API und den im Issue gezeigten Einstiegspunkten digitalPinToBitMask, digitalPinToPort, portModeRegister und portOutputRegister. Prüfe, wie die hardwareunabhängige API Pin-Operationen bereitstellt und wie Cores sie implementieren. Als abgeschlossen gilt die Aufgabe, wenn der aktuelle Pin-Modus abgerufen werden kann, die angegebenen Modi zurückgegeben werden und für einen ungültigen Pin -1 zurückgegeben wird.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- arduino, cpp
- Bereich
- api, embedded-iot
- Issue-Typ
- Feature
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100