TODOPIC

Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: JUAN PINTO en 12 de Junio de 2019, 23:34:19

Título: No puedo usar todo el PortA como i/o del 16f628a
Publicado por: JUAN PINTO en 12 de Junio de 2019, 23:34:19
Hola amigos del foro.
Otra vez vuelvo a molestarles y espero puedan ayudarme nuevamente.
Estoy programando con PicBasic; usando el Pic 16f628a y tengo la necesidad de usar los pines 5, 6 y 7 de PortA como i/o. Tengo varios días investigando y probando en Proteus.  Funciona todo, menos los pines 5, 6 y 7 del PortA. 
He leído en este y otros foros, páginas, etc. donde indican repetidamente que para lograrlo se usa el comando  “CMCON = 7” al comienzo del programa. He probado con "DEFINE INTOSC " "ALLDIGITAL" incluso combinándolos  y de manera independiente a  todos ellos y.... NADA     
Hice un programita y un circuito de lo más sencillo posible para probarlo; lo simulo en Proteus y NADA, no me funciona. Porfa, que alguien me diga ¡Qué estoy haciendo mal!, ¿Qué falta?,  ya no sé qué más probar. Agradezco vuestra ayuda.
Éste es el programita sencillito de prueba.
De antemano... Muchas gracias.

TRISA = %00100000
TRISB = %00000000
cmcon = 7 ' to disable portA comparators
INICIANDO:
LED VAR PORTA.0 'Este si funciona en el simulador
HIGH LED
PAUSE 200
LOW LED
PAUSE 200

LED2 VAR PORTA.6 'Éste.....Nada que ver. No funciona.
HIGH LED2
PAUSE 200
LOW LED2
PAUSE 200

GOTO INICIANDO
END

 
Título: Re:No puedo usar todo el PortA como i/o del 16f628a
Publicado por: luismh en 13 de Junio de 2019, 08:52:46
Hola,

RA5 es MCLR en este micro. Entiendo que no podés usarlo como I/O.
Por otro lado, RA6 y RA7 son entradas de oscilador. Dependiendo de tu configuración de oscilador, podrás usarlos o no. La pregunta es ¿Qué configuración de oscilador estás usando?

Saludos.
Luis.
Título: Re:No puedo usar todo el PortA como i/o del 16f628a
Publicado por: elreypic2 en 13 de Junio de 2019, 09:02:26
Que tal Juan Pinto,
Cual versión del compilador de Picbasic estás usando?
Pbp 2.xx o Pbp 3.xx?

Una cosa más, el puerto RA5 solo puede ser puerto de entrada, nunca de salida.

Si estás usando el PBP 2.60C o menor debes usar la directiva __config para colocar correctamente los fusibles del microcontrolador
En tu caso es para decirle que use el oscilador interno y que habilite los pines RA6 y RA7.

  - Tienes que ingresar para ver archivos adjuntos -  

Para esto tienes que agregar la siguiente linea:

@   __config _INTRC_OSC_NOCLKOUT & _MCLRE_OFF

Luego buscas en el directorio donde tienes instalado el PBP, el archivo 16F628A.INC. Abre el archivo con un block de notas o con el mismo Microcode Studio. En ese archivovas a encontrar una linea como la siguiente:

__config _XT_OSC & _WDT_ON & _MCLRE_ON & _LVP_OFF & _CP_OFF

a esa linea agrégale un ";" al inicio para dejarlo como comentario

;__config _XT_OSC & _WDT_ON & _MCLRE_ON & _LVP_OFF & _CP_OFF

guarda el archivo y vuelve a recompilar en el Microcode Studio.

Si estas usando PBP 3.0 o superior como se muestra en la siguiente imagen:

  - Tienes que ingresar para ver archivos adjuntos -  

Entonces solamente agregas lo siguiente al inicio de tu código:

#CONFIG
   __CONFIG   MCLRE_OFF & _INTRC_OSC_NOCLKOUT
#ENDCONFIG

y listo, en esta version no necesitas modificar ningún archivo más. Simplemente recompila usando Microcode Studio.

Elreypic
Título: Re:No puedo usar todo el PortA como i/o del 16f628a
Publicado por: wolfman77 en 13 de Junio de 2019, 16:21:30
Hola Juan, proba con esto:

@ DEVICE pic16F628, INTRC_OSC_NOCLKOUT
@ DEVICE pic16F628, MCLR_OFF
Título: Re:No puedo usar todo el PortA como i/o del 16f628a
Publicado por: JUAN PINTO en 15 de Junio de 2019, 17:57:00
Gracias amigos, les agradezco vuestra ayuda.
Si, el problema estaba en la versión que tenía istalada del PBP; efectivamente mi versión era la 2.50
Seguí los pasos de "elreypic2" y  :-/
Gracias a Dios por uds.
Continuaré con mi programita y nos seguiremos leyendo.
Que Dios les siga bendiciendo.