TODOPIC
Microcontroladores PIC => Almacén del Assembler => Mensaje iniciado por: JoseLuis2801 en 16 de Mayo de 2014, 20:07:22
-
Hola, para que sirve ese registro ? , el Lat de un puerto . p.ej. LATA , mas que nada un ejemplo practico para que me entere mejor.
Gracias
Un saludo
-
Es el registro donde debes escribir si quieres cambiar el estado de uno o varios pines de ese puerto
bsf LATA,0 ; pone a "1" el bit 0 del puerto A
clrf LATA ; Pone a cero todo el Puerto A
Para leer un puerto utilizar PORT y para escribirlo el LAT.
-
Ya, si no digo que no, pero es que si yo pongo
BSF PORTA,0
Lo mismo, me saca un 1 por la patita del bit 0.
Luego entonces, para algo más servirá.........
-
Sirve solamente para lo que te ha explicado HJG la diferencia entre cambiar los valores en PORT y LAT es que en LAT lees el valor que tiene el pin, mientras que en PORT lees el valor de voltaje actual del pin.
Es una buena practica usar PORT para leer y LAT para escribir a pesar de que con port tambien "funcione" pero no es lo correcto.
-
Sirve solamente para lo que te ha explicado HJG la diferencia entre cambiar los valores en PORT y LAT es que en LAT lees el valor que tiene el pin, mientras que en PORT lees el valor de voltaje actual del pin.
Es una buena practica usar PORT para leer y LAT para escribir a pesar de que con port tambien "funcione" pero no es lo correcto.
Pero que diferencia hay entre leer el valor que tiene el pin (el valor del pin en otro momento, en cual :roll:), y leer el valor de voltaje actual del pin :?:
Vale, si yo si tengo que poner LAT para escribir lo pongo, pero yo sigo sin ver la diferencia.......... :roll:
-
Que el estado lógico (LAT) del pin no tiene por qué necesariamente coincidir con su lectura de voltaje (PORT). Sea por demoras en la propagación del estado lógico a voltaje presente, o bien debido a un cortocircuito, etc.
-
El estado lat es el que tu le pones por ejemplo 1 y el port es el estadi real del pin si por ejemplo en poner el pin en 1 tarda un tiempo determinado si lees port justo despues de lat entonces te marcara 0 hasta que este tome el estado real de 1. Lo mismo ocurre si por ejemplo tienes un cortocircuito tu pones el lat a 1 sin embargo el voltaje corresponde a 0 pues por mucho q pongas a 1 el estado de port sera 0.
Otra cosa que recuerdo tambien es que lat te cambia el pin directamente sin comprobar el estado de este y port si lo cambias primero comprueba su estado y luego escribe el estado:
Lat: cambia estado
Port: lee estado, comprueba estado, lo escribe en caso que sea necesario.
Si escribes en port 1 y este detecta que esta en 1 no cambia el estado. Sin embargo lat la cambia independiente de su estado.
Espero q lo hayas comprendido, suele ser complejo al principio sin embargo no te compliques utilizas lat parq cambiar el estado y port para leer el estado del pin.
-
Ahora si, vale muchas gracias, es que al texto en ingles del datasheet no le sacaba el sentido.
Bueno, PORT para leer y LAT para escribir. 8)
;-)