Réponse un peu tardive, je découvre ce sujet.
C'est possible, j'ai trouvé cette solution sur internet, je l'ai testé et cela fonctionne et même très bien.
REG_WRITE est une macro qui simplifie l'écriture dans un registre.
Les registres GPIO sont décrits dans le document Espressif : ESP32 Technical References Manual ( 718 pages, désolé)
Les pages concernant les GPIO vont de 44 à 52.
Exemple pratique :
Déclaration d'une E/S en sortie :
E/S comprise entre 0 et 31 :
REG_WRITE(GPIO_ENABLE_REG, BITX); => X étant le numéro du gpio
E/S comprise entre 32 et 39 :
Remplacer ENABLE par ENABLE1.
Mettre une sortie à 1 :
REG_WRITE(GPIO_OUT_W1TS_REG, BITX) ; // S pour Set
Mettre à 1 :
REG_WRITE(GPIO_OUT_W1TC_REG, BITX) ; // C pour Clear
Mesures :
appareil de mesure : analyseur logique clone Saleae
digitalWrite => ~330ns
Registes => ~ 50 ns
Rappel nano/Uno => 3700 ns
Partager