arduino / arduino/ArduinoCore-API
Retrieve current pin mode
- 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