Comment détecter les changements (1 ou 0) sur PORTC d’Atmega8?

shafeeq

Comment détecter les changements (1 ou 0) sur PORTC d’Atmega8?


J’ai fait PORTC.0, PORTC.1, PORTC.2, PORTC.3 en entrée et je l’ai réglé à haut. Les broches restantes sont définies en sortie et hautes. Ainsi, toutes les broches de PORTC sont hautes.

Maintenant, ce que je veux vérifier, à chaque fois qu’une broche de PORTC devient faible (0), alors ma fonction « setDirection () » doit être appelée. Pour cela j’ai écrit

if(~PINC)setDirection();

mais la condition ~ PINC se révèle toujours vraie, quelle que soit la broche de PORTC est faible ou non. Ensuite, j’ai essayé ce code

if(!PINC)setDirection();

cette condition ne s’avère jamais vraie, que le PIN PORTC soit élevé ou faible.

Rev1.0

Bien qu’il ait été répondu comment vérifier correctement l’état des broches, ce n’est pas clair ce que vous essayez d’atteindre. Que fait setDirection () exactement?

shafeeq

@Rev j’essayais de détecter que si l’une des broches du port c devient faible, il faut appeler « setDirection () » qui vérifie ensuite quelle broche du port c est basse et définit la direction en conséquence …

Réponses


 DoxyLover

if ((PINC & 0x0F) != 0x0F) setDirection();

Cela teste si l’un des 4 bits n’est pas élevé. Les tests que vous avez essayés nécessitent que TOUS les bits soient faibles.

 

«détecter, #ou, 0,, 1, changements, comment, d’Atmega8?, Les, PORTC, sur

 

google

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *