Esta pregunta se refiere específicamente a un ATmega328P, pero probablemente se pueda generalizar a la mayoría o a todas las MCU AVR.
Conocido 1: cuando el Registro de dirección de datos (DDR) para un pin se establece como modo de entrada, aún es posible escribir en el PUERTO para ese pin; En lugar de producir una salida, el valor escrito en PORT simplemente cambiará el pin entre el modo pull-up y tri-state.
Conocido 2: se puede configurar un pin para cambiar su estado de salida junto con el módulo de generación de forma de onda en un temporizador.
Pregunta : cuando el DDR para un pin está configurado como input , y ese mismo pin también está configurado para cambiar de estado junto con un temporizador , ¿la forma de onda del temporizador cambiará efectivamente el pin entre los modos tri-state y pullup? ¿O el pin se comportará de manera más razonable, permaneciendo en tri-state / pullup según el valor de PORT?
Supongo que la pregunta podría replantearse de la siguiente manera: ¿el temporizador escribe en el registro del PORT para cambiar el estado del pin?
Lo único remotamente relevante que pude encontrar en hoja de datos es la siguiente línea:
... Sin embargo, tenga en cuenta que el bit de Registro de dirección de datos (DDR) correspondiente al pin [temporizador] debe configurarse para habilitar el controlador de salida.