¿Se pueden declarar como entradas algunos pines del mismo puerto en AVR MCU y algunos como salidas?

0

¿Se pueden declarar algunas entradas del mismo puerto de AVR MCU como entradas y otras como salidas?

Si es así, entonces no puedo entender cómo funciona esto ya que tenemos que comparar los pines del puerto y también asignar los valores a los pines de salida. Sería muy bueno si proporcionara incluso un programa simple para esto en C.

    
pregunta Jasser

1 respuesta

4

Sí.

El registro DDRx establece la dirección de los pines individuales. Un bit establecido en 0 configura el pin como entrada y establecido como 1 lo configura como salida.

El registro PINx contiene los valores leídos de los pines configurados para ingresar.

El registro PORTx se escribe para establecer el estado de cualquier pin configurado para la salida.

DDRB = 0x01; // Set pin 0 as output, all others as input on port B
if (PINB & 0x02) { // Check state of pin 1 on port B
    PORTB |= 0x01; // Set pin 0 on
} else {
    PORTB &= 0xFE; // Turn pin 0 off
}

Observe el uso de operadores bitwise allí para modificar el valor existente en el registro PORTB, en lugar de escribir un valor completo. Eso le permite establecer o borrar un bit individual en el registro.

    
respondido por el Majenko

Lea otras preguntas en las etiquetas