Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

01/04/2009 #1

Avatar de culebrasx

RA0 y RA1 como entradas?no reconoce cambios en PORTA
Hola, tengo un problema:
Voy a usar las patillas RA0:4 como entradas de mi PIC16F684
En MPLAB v8.0 he configurado en "Configuration Bits" el modo EC, para poder introducir una señal de reloj por RA5/CLKIN,
con lo que me queda libre R4,
He cargado el registro del banco1 TRISA con 0xFF, he vuelto al banco0,
compruebo que efectivamente en registro TRISA tiene cargado b'00111111', he configurado estas patillas como pull-up.

Voy al workbook Stimulus y en Asinch pongo todas mis patillas de entrada, y "set high", le doy a apply, y luego fire, paso una intruccion mas en el debugger y solo me muestra a 1 RA2:4

He mirado (creo) todos los registros que afectan al PORTA y creo que esta todo bien, alguien tiene alguna sugerencia de porque esas dos patillas no funcionan bien? o sera cosa de la simulacion y luego fisicamente si en TRISA estan bien funcionarán correctamente?

Otra cosa rarita, en el workbook en IN/Register ACtions, por ejemplo; yo le cargo en Hex el '1A' le doy a apply paso una instruccion y el me carga en PORTA h'18', en decimal 24, puede venir del mismo sitio el error,

Otra cosa, no se si tendra que ver, voy a programarlo con el programador de Programador de microcontroladores PIC y memorias por puerto USB PICKIT2 CLONE (gracias forever) Moyano, y como es DIP14 mi PIC las patillas creo que data y clock son la 17 y 18 que coinciden con las RA0 y RA1 que me dan problemas, puede que haya por ahi algun error? m

Muchas gracias como siempre de antemano y perdón por la biblia.....
01/04/2009 #2

Avatar de culebrasx

el caso es que si le cambio el estado desde el workbook aunque no me muestre un 1 es PORTA si que me redirige a la direccion 04 del vector de interrupcion , asi que lo tomaré como un error menor a no se que alguien me diga que pueda ser otra cosa, en cuanto lo implemente fisicamente saldré de dudas....
01/04/2009 #3


al parecer eres el unico que maneja el f648, postea el codigo, quiza se te pueda auxiliar.
01/04/2009 #4

Avatar de culebrasx

No,jejejej uso el 16f684,jajaja, pero si te referias a este pero se han montado los numeros, no tenia ni idea, lo he buscado por unas caracterisiticas que necesitaba en concreto, no me he guiado por popularidad ni cosas por el estilo,
pongo el codigo, ya se que parece un poco de principiante con tanto comentario y todo eso, pero es mi primer proyecto con pic y asi me pongo unas notas de recuerdo,jajaja


List p=16F684
include "P16F684.inc"

horas EQU 20
minutos EQU 21
wakeh EQU 22
wakem EQU 23
modo EQU 24
RA0 EQU 0
RA1 EQU 1
RA2 EQU 2
RA3 EQU 3
RA4 EQU 4
RA5 EQU 5
delay1 EQU 25
delay2 EQU 26
#DEFINE BANCO0 bcf STATUS,5
#DEFINE BANCO1 bsf STATUS,5
#DEFINE ZERO btfss STATUS,Z
#DEFINE NZERO btfsc STATUS,Z

ORG 0X0000
GOTO 0X0005




ORG 0x0005
inicio
BANCO0 ;accedemos al banco 0
bsf T1CON,T1OSCEN
bsf INTCON,T0IE ;para poder utilizar las interrupciones TMR0 ponemos a 1 el TOIE
bsf INTCON,GIE ;General interrupt enable
bsf INTCON,PEIE ;activa las interrupciones por perifericos
bsf INTCON,INTE ;activa las interrupciones externas
bsf INTCON,RAIE ;activalas interrupciones por cambio en el puerto A
bcf T1CON,TMR1CS;para aumentar el TMR1 con Reloj externo(CAMBIAR LUEGO!)
bsf T1CON,TMR1ON
bsf STATUS,RP0 ;seleccionamos el banco 1, porque los siguientes registros estanen el banco 0
bcf TRISC,5 ;para utilizar la patilla 5 como salida PWM
movlw 0xff
movwf WPUA
bsf OSCCON,0
bsf OSCCON,3
clrf ANSEL ;operando en digital
movlw 0xff
movwf IOCA ; para poder habilitar las interrupciones en los pines
bcf OPTION_REG,T0CS ;para poder utilizar el TMR0,ponemos a 0 el bit T0CS
bcf OPTION_REG,PSA ;para poder asignar un prescaler al TMR0
bsf PIE1,TMR1IE ;PODER UTILIZAR INTERRUPR ON TMR1
movlw 0xff
movwf TRISA
BANCO0 ; intruccion abreviada con define que nos cambia al Banco0
CLRF minutos
CLRF horas
CLRF wakeh
CLRF wakem
clrf modo
movlw 0x00ff
movwf TMR1L
movlw 0xF0
movwf TMR1H


el resto de codigo preferiria mantenerlo en 'secreto' ya que es para un proyecto de la universidad y ya he visto por aqui algun compañero que pedia que les dieramos ideas, no me malinterpreteis, pero lo de: "oye, ¿como hago esto?" no es una actitud que comparta, primero pensar y despues de no obtener solución preguntar, pero preguntar lo primero no es una actitud que yo comparta.

Pero no os preocupeis que el dia despues de entregar toda la información al profesor la compartiré en el foro con esquemas, codigo y todo lo necesario...
un saludo desde España
01/05/2009 #5


hola culebrasx no se se te entendi bien pero que que ya se donde sta el progema de tu simulacion ya que al ver tu codigo parese estar bien pero podrias simplificar lo mas con algunas ventajas que dan la familia de los pic en el caso de los somnetarios no hay rpoblema ya que puedes abusar de ellos ya que la mente es muy fragil.
Bueno te recomiendo que en la simulacion en utilises la opcion "toggle" en ves de "set high" talves este ahi el rpoblema espero te funcione.
02/05/2009 #6

Avatar de culebrasx

ya solucione el problema,muchas gracias, por cierto tambien he cambiado de pic, ahora estoy usando el pic16f677, muchas gracias y un saludo...
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.