TODOPIC

Microcontroladores PIC => Primeros pasos - Iniciación a los microcontroladores => Mensaje iniciado por: Watek en 21 de Abril de 2020, 19:01:33

Título: Duda en configuración de puertos P16F84
Publicado por: Watek en 21 de Abril de 2020, 19:01:33
Revisando un código encontrado por la red, he visto que en la configuración inicial de puertos aparece esto:


Código: [Seleccionar]
bsf     STATUS,RP0           
         clrf    PORTB                 
         movlw   b'00011111'         
         movwf   PORTA             
         clrf    TRISB                 
         bcf     STATUS,RP0     
     

Mi duda está en si eso es correcto, es decir, en la segunda instrucción accede a portB, sinembargo está en el banco 1 de la memoria.
Por que pone a 0 todas las salidas y despues las configura como salidas? Es por un tema de seguridad?

Gracias.   
Título: Re:Duda en configuración de puertos P16F84
Publicado por: KILLERJC en 21 de Abril de 2020, 20:37:34
Muchos usan (incluso libros), me parece que incorrectamente a mi gusto, el PORTB como referencia a acceder al TRISB. ya que como comentas estan en el banco 1.

Ese codigo es raro, ya que usualmente  no repiten el tema de poner como salidas el puerto B.

Citar
Mi duda está en si eso es correcto, es decir, en la segunda instrucción accede a portB, sinembargo está en el banco 1 de la memoria.

PORTB y TRISB son solo numeros que estan definidos en el .inc

La direccion de memoria de uno y otro es distinto, pero como las instrucciones solo soportan cierta cantidad de bits, se se recorta, ambos quedan accediendo a la misma posicion de memoria. En fin ahi no es mas que esto:

Código: ASM
  1. bsf     STATUS,RP0          
  2.          clrf    TRISB                
  3.          movlw   b'00011111'        
  4.          movwf   TRISA            
  5.          clrf    TRISB                
  6.          bcf     STATUS,RP0

Citar
Por que pone a 0 todas las salidas y despues las configura como salidas? Es por un tema de seguridad?
En realidad estos PICs son malos sus etapas de salidas y entradas, por lo que hay que tomar ciertas precauciones PERO estas no son, Al poner a 0 el PORTB mientras estan como entradas no les va a cambiar nada. Por eso los otros PICs traen otros registros como LATB (registro de salida), PORTB (registro de entrada) y TRSIB (direccion del pin).

La precaucion que se debe tener con estos pines ES si tu carga es muy capacitiva, y si tenes 2 cambios de pin seguidos. Eso puede traer problemas, problema que desaparece con los PICs que traen ya los tres registros, como casi todos los PIC nuevos... Ya nadie usa el PIC16F84, mas que para aprender apenas el funcionamiento.
Título: Re:Duda en configuración de puertos P16F84
Publicado por: Watek en 22 de Abril de 2020, 19:44:07
Gracias KILLERJC. :)