no se puede obtener el valor PORTB en pic18f2550

0

Estoy intentando enviar el PORTB al puerto serie y recibir los datos en el modo UART de pickit2.

void main()
{
  TRISB = 0xFF;
  PORTB = 0;
  UART1_Init(9600); // Initialize UART module at 9600bps
  Delay_ms(100); // Wait for UART module to stabilize
  while (1)
  { // Endless loop
    UART1_Write(PORTB); // and send data via UART
    Delay_ms(500);
  }
}

Estoy usando MikroC pro. y el problema es que no obtengo los datos adecuados.

He conectado resistencias pullup a cada pin de PORTB y todo lo que obtengo es

RX: E0

lo que significa que solo RB5, RB6 y RB7 están levantados, los pines de descanso están bajos.

también noté que si trato de tirar hacia abajo cualquier pin de portb, entonces solo estos pines causan que el valor cambie. ¿Alguna idea de lo que podría estar mal?

    
pregunta Suraj Bhawal

1 respuesta

3

Según la hoja de datos , en el RB4 de inicio: los RB0 están configurados como entradas analógicas y leerá como cero.

Es necesario convertirlas en entradas digitales durante la inicialización, por ejemplo:

ADCON1 = 0x0E;

Alternativamente, puede borrar el bit PBADEN en el registro CONFIG3H cambiando sus ajustes de configuración.

    
respondido por el Roger Rowland

Lea otras preguntas en las etiquetas