TODOPIC
Microcontroladores PIC => Almacén del Assembler => Mensaje iniciado por: lu8djr en 26 de Mayo de 2023, 12:27:44
-
Salud!!!
Me encuentro con el problema de configurar correctamente los pines 6 y 7 como entradas digitales. Imagino que estoy omitiendo algo ya que el mismo codigo funciona correcmente si utilizo como entrada otro puerto del PIC. Descarto problemas fisicos ya que estoy trabajando simulado. No creo que esto ultimo sea el problema. Mas bien estoy apuntando a que sea alguna configuracion particular que diferencia GP0 y GP1 de GP2.... Probe desactivando comparador etc. A continuacion pongo el codigo de la parte de configuracion. Mil gracias a todos por su tiempo !!!
;********************** PROGRAMA PRINCIPAL **********************************
CONFIGURACION
bsf STATUS,RP0 ; Seleccionamos banco 1
movlw 0x07
movwf CMCON0 ; Comparadores OFF (GP0, GP1, GP2)
movlw b'01110001' ; Bit 1 y 2(LTS HTS) indican si los osc. son estables. Bit 7 no implementado
movwf OSCCON ; Oscilador interno a 8MHz
clrf ANSEL ; Puerto digital
clrf TRISIO ; Set all General Purpose I/O to output
clrf CCP1CON ; CCP Module is off
movlw b'00111101' ; Bit 7 y 8 no implementados, Bit 0,1,2,4,5 como salida el bit 3 solo se puede
; configurar como entrada
movwf TRISIO ; Utilizaremos todo el GP0 como salida.
bcf STATUS,RP0 ; Seleccionamos banco 0
clrw
;----------------------------------------------------------------------------
-
amigo, todo lo que es la configuración esta bien lo raro es que de donde quieres configurar el pin 6 y 7 si en ese pic no existe físicamente ni en la simulación aparecen ni en la hoja de datos, solo tiene un puerto y es de 5 bits
-
El pin 6 y 7 fisicamente corresponden a GP0 y GP1 en entiendo que son de proposito general
-
me refiero a que el puerto es de 8bits y el 6 y 7 no están implementados y ni existen en la realidad ya que el micro es de 8 pines entonces si estas hablando de gpio entonces puedes referirte a gp0 gp1 gp2 gp3 gp4 gp5 ya que gp6 y gp7 no existen y la distribución o el acomodo del puerto en los pines físicos es diferente y claro no concuerdan, ya después del choro si hablas de gp0 y gp1 según el datasheet y como lo pusiste en tu primer mensaje esta bien y no debe de tener ningún error hay si no hace nada puede ser por configuración tal vez de MCLR o del Oscilador pero los puertos están bien configurados.
-
bueno como todos somos humanos y nos equivocamos jeje creo ya vi cual es el error, cuando cargas a w para mandar a tris tu le pones 00111101 y tendría que ser 00001000 para que sean salidas y el bit 3 solo entrada que es el del Mclr bueno de hay en fuera me parece que todo bien.
-
Bueno no me explique bien. Uso GP2, GP3, GP4, GP5 como entrada. Y los que tengo problemas GP0 y GP1 uno como entrada y otro como salida.
Estos son los que me dan problemas si los quiero configurar como entrada, como salida funcionan.
Mil gracias por tu dedicación
-
ok tu código esta perfecto como mencionas que lo necesitas, tal vez sea otra cosa ya fuera del pic.
-
¿No será que intentas cambiar el valor de CCP1CON estando en el banco 1, cuando dicho registro está en el banco 0?
(https://pbs.twimg.com/media/FxGQZQKWAAAjQ-T?format=png&name=900x900)
Deberías debugar e ir avanzando paso a paso para determinar si los registros que vas cambiando su valor, en realidad, lo hacen.
-
Efectivamente!!! dio en clavo con (DominusDRR). Mil Gracias por su aporte!!!.
Hay poco donde buscar sobre este PIC y ,este sin duda, es el mejor lugar donde acudir.
Gracias a todos por su tiempo y dedicación