arduino / arduino/ArduinoCore-API

Retrieve current pin mode

Ouverte
#179 4 commentaires 13 réactions 0 personnes assignées Voir sur GitHub
enhancement
Langage dominant
C++
Étoiles
306
Forks
150
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

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!

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Piste de recherche

Commencez par l’API pinMode existante et les points d’entrée digitalPinToBitMask, digitalPinToPort, portModeRegister et portOutputRegister indiqués dans l’issue. Vérifiez comment l’API indépendante du matériel expose les opérations sur les broches et comment les cores les implémentent. Le travail est terminé lorsqu’il est possible de récupérer le mode actuel d’une broche, que les modes spécifiés sont renvoyés et que -1 est renvoyé pour une broche invalide.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
arduino, cpp
Domaine
api, embedded-iot
Type d'issue
Fonctionnalité
Difficulté
3/5
Temps estimé
1-2 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.