Registros de microcontroladores (atmega16) ¿Podemos almacenar el valor de un puerto en una variable directamente usando el registro de portx sin el registro pinx?

0

¿Podemos almacenar el valor de un puerto en una variable? Quiero decir que es c = portd; ¿posible? Si es así ... ¿por qué tenemos un registro pinx para leer los valores? ¿Cuál es la diferencia entre los dos?

    
pregunta Sandeep Pai

1 respuesta

1

El registro PORTD está almacenado en búfer, es un registro de una sola vía en el sentido de que los pines seguirán el registro, pero el registro no seguirá los pines. Los pines reales no pueden cambiar ese registro particular.

El registro PIND está tomando sus datos de los pines. Solo leerás de este registro. Por lo tanto, es un registro de una sola vía en el sentido de que solo leerá, no escribirá en él.

Información adicional:
El registro PORTD también se usa para seleccionar qué patillas deberían activar sus dominadas internas, si el pin está configurado como entrada.

El registro DDR controla qué pines son de salida o entrada.

Información adicional para atmega16:
El registro PIND es un registro de solo lectura.

Información adicional para atmega328p:
Si escribe un 1 en PIND, entonces ese pin en particular cambiará. Si era 1 se convertirá en 0, si es 0 se convertirá en 1. Así que escribir en PIND cambiará PORTD y no cambiará PIND.

Como siempre, tome la hoja de datos y lea . La información es gratuita. No muerde

    
respondido por el Harry Svensson

Lea otras preguntas en las etiquetas