Utilisation de gpio.h, accès direct sur les pins de l'ESP

Accueil Forums ESP8266 / ESP32 Utilisation de gpio.h, accès direct sur les pins de l'ESP

Étiqueté : , ,

2 sujets de 1 à 2 (sur un total de 2)
  • Auteur
    Messages
  • #2803
    Rolf Ziegler
    Maître des clés

    Bon a savoir,

    La pin 16 ne s’utilise pas comme les autres pins avec les commandes GPIO car elle fait partie du module RTC

    En recherchant pourquoi, je suis tombé sur le fichier qui gère digitalWrite et y trouve quelques lignes qui redirigent vers le bon registre

    Dans un des fichiers, une définition donne GPOS pour le registre set pin et GPOC pour le registre clear pin (typique à ARM).

    on met donc le bit à 1 de la bonne pin dans GPOS ou GPOC (0-15). Pour la pin 16 (D0) on doit utiliser GP16O de manière conventionnelle avec « ET » et « OU »

    cette pin ne faisant pas partie des registres set et clear de GPIO.

    • Ce sujet a été modifié le il y a 7 années et 7 mois par Rolf Ziegler.
    • Ce sujet a été modifié le il y a 7 années et 7 mois par Rolf Ziegler.
    #2832
    Rolf Ziegler
    Maître des clés

    Voici une alternative pour accéder aux pins plus rapidement qu’avec digitalWrite ou digitalRead decrite plus haut
    #define PIN_READ(x)  ((GPI & (1 << x)) != 0)
    #define PIN_LOW(x)  (GPOC = (1 << x))
    #define PIN_HIGH(x)  (GPOS = (1 << x))
    #define PIN16_LOW() (GP16O &= ~1)
    #define PIN16_HIGH() (GP16O |= 1)

    Les registres GPOC (clear bit register) , GPOS (set bit register) et GP16O (gpio16 register) sont déclarés dans le driver ESP8266.

     

2 sujets de 1 à 2 (sur un total de 2)
  • Vous devez être connecté pour répondre à ce sujet.