¿PORTB y PINB en avr studio mientras se programa para Atmega8? [cerrado]

-5

¿Cuál es la diferencia entre PORTB y PINB en avr studio durante la programación para Atmega8 con el software "Atmel Studio.6"?

    

1 respuesta

2

Hay una enorme cantidad de diferencia. Esas diferencias son más notables cuando el pin está en modo de entrada (DDRxn = 0).

Cuando está en modo de entrada:

PINxn lee el valor del pin IO tal como está en el pin real. PORTxn controla la resistencia de pull-up.

Cuando está en modo de salida:

PORTxn establece el nivel de salida del pin. PINxn lee ese nivel de salida de pin.

Todo está explicado en la hoja de datos. Lo más simple es mirar el diagrama de cómo funciona un puerto IO:

De eso se puede ver que PINxn obtiene su valor directamente del pin IO, y PORTxn envía su salida al pin IO y también a la puerta que controla la resistencia pullup.

La lectura desde PINxn siempre leerá el pin sin procesar, sin embargo, y la lectura desde PORTxn siempre leerá el valor antes del búfer DDRxn. Por lo tanto, en el modo de entrada, la lectura de PINxn leerá el valor de pin, y la lectura de PORTxn leerá el estado de resistencia pullup. En el modo de salida, la lectura de PINxn o PORTxn devolverá el valor controlado por el registro PORTxn.

Así que, en general, si está realizando una salida, escriba en PORTxn. Si está ingresando, lea de PINxn.

    
respondido por el Majenko

Lea otras preguntas en las etiquetas