Error en PORTB pic18f2550

0

He leído la mayor parte de la hoja de datos, pero no he encontrado una solución. ¿Por qué PORTB en mi PIC18F2550 solo acepta un valor máximo de 3? Mi código es:

;Configure PORTA e PORTB
MOVLW   0x0F ; Configure A/D 
MOVWF   ADCON1 ; for digital inputs

;Enable the pull-up resistor
MOVLW   0X00
MOVWF   INTCON2

;Set all the pins of TRISB as input, except for <R0:R1> that are outputs
MOVLW   b'11111100'
MOVWF   TRISB

;Clean up registers
CLRF    LATB
CLRF    PORTB

El LATB puede almacenar 11111111, pero solo almacena 00000011 PORTB, ¿por qué?

    
pregunta Ronald Araújo

1 respuesta

1

A partir del código publicado, parece que solo se pueden realizar activaciones "medio habilitadas" al borrar INTCON2 [! RBPU]. Para habilitarlos realmente, también tiene que configurar los bits LATB correspondientes.

De la hoja de datos pic18f2550 :

  

RBPU: bit de activación de recuperación de PORTB
        1 = Todos los pull-ups de PORTB están deshabilitados
        0 = Los pull-ups de PORTB están habilitados por valores de bloqueo de puerto individuales

En tu código, borraste LATB, deshabilitando efectivamente los pullups.

    
respondido por el apalopohapa

Lea otras preguntas en las etiquetas