Go Down

Topic: set output pin in alta impedenza hiz (Read 333 times) previous topic - next topic

vinaruino

ciao a tutti,
 c'e' un modo di portare un OUTPUT pin in alta-impedenza (HiZ) con Arduino Uno o Mega?
Mi serve poter comandare un LED da un'altra logica oppure da Arduino in alternanza, senza creare conflitti.
grazie

tek-0


tek-0

Pensavo intervenisse qualcuno per una risposta più onesta/corretta. Ok, esiste un comando specifico ereditato dall'assembly  che agisce direttamente sui registri delle porte. Non sono la persona giusta per spigar telo dato che sono nuovo al "C" e alla piattaforma Arduino e tale comando l'ho usato un paio di volte e solo per fare delle prove. Comunque ti do un'indicazione, il comando e:  PORTx &=  ~(n<<y).
PORTx, in realtà potrà essere PORTD.
~(n<<y) "n", rappresenta il bit da assegnare che vale 1 per un'uscita in alta impedenza, " y" rappresenta l'esatta porta su cui agire a partire dalla posizione 1. La tilde (~) esegue l'inversione bit per bit dei valori, lo zero diventa uno e viceversa ed infine, l'operazione AND  (&=)tra il registro che il byte da te formattato. Spero di esserti stato d'aiuto.
Consiglio di cercare anche la voce DDRx che permette la manipolazione diretta del registro della porta ovvero ingresso o uscita ecc... :o

gpb01

#3
Jun 26, 2018, 06:56 pm Last Edit: Jun 26, 2018, 06:57 pm by gpb01
... guarda che era sufficiente la tua prima risposta, senza tante complicazioni  :smiley-twist:

Guglielmo
Search is Your friend ... or I am Your enemy !

Go Up