¿Cómo detectar cambios (1 o 0) en el PORTC de Atmega8?

1

Hice PORTC.0, PORTC.1, PORTC.2, PORTC.3 como entrada y lo puse en alto. Los pines restantes se establecen como salida y alta. Así todos los pines de PORTC son altos.

Ahora quiero comprobar que cada vez que un pin de PORTC esté bajo (0), se debe llamar a mi función "setDirection ()". Para eso he escrito

if(~PINC)setDirection();

pero ~ La condición PINC se revela como siempre cierta, independientemente de que cualquier pin de PORTC sea bajo o no. Entonces probé este código

if(!PINC)setDirection();

esta condición nunca se cumple, ya sea que el PIN de PORTC sea alto o bajo.

    
pregunta shafeeq

1 respuesta

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

Esto prueba si alguno de los 4 bits no es alto. Las pruebas que probaste requieren que TODOS los bits estén bajos.

    
respondido por el DoxyLover

Lea otras preguntas en las etiquetas