arduino / arduino/ArduinoCore-API

Retrieve current pin mode

Offen
#179 4 Kommentare 13 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
enhancement
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

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.