TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: J1M en 12 de Noviembre de 2003, 15:50:00

Título: Que falla en este bucle?
Publicado por: J1M en 12 de Noviembre de 2003, 15:50:00
Vereis os explico, he exo este bucle:

Codigo:

WAIT   BTFSC   PORTA,0
   CALL   MUE_CEN
   BTFSC   PORTA,1
   CALL   MUE_DEC
   BTFSC   PORTA,2
   CALL   MUE_UNI
   BTFSC   PORTA,3
   GOTO   RESET
   GOTO   WAIT



Con esto lo que trato de hacer es que, esté rastreando constantemente las puertas RA0 hasta RA3, y cuando detecte que se ha pasado de un 0 a un 1, es decir, se ha activado ese pulsador, para no complicarlo muxo, he supuesto que solo se podrá pulsar uno cada vez, una vez detecte pulsación se invocará a la subrutina pertinente, si no detecta nada al akabar el ciclo se vuelve a llamar a WAIT, y ahi estaremos hasta q se pulse alguna, pues bien, si lo simulo con el mpsin funciona perfectamente, pero si pongo el pic en la Trainer no va como deberia....... para q funcione bien (en la trainer) tngo q tener las RA a 1, y entonces al ponerlas a 0 es cuando funciona, es decir, justo al reves de lo que se supone he programado........alguien lo entiende??? pq yo no :P

Gracias
Título: RE: Que falla en este bucle?
Publicado por: J1M en 12 de Noviembre de 2003, 17:38:00
estoy apunto de que me de algo ... vamos a ver, la instruccion:
btfsc --> mira si el bit X del registro Y, está a 0, y si es así salta la instruccion que tiene acontinuacion no??
lo mismo con btfss --> pero mira que esté a 1, si lo está salta la instruccion que le precede.......

o eso es lo q tengo entendido, pero bien, ahora voy y leo esto:
http://www.todopic.com.ar/asm/_PRINCIPIANTES/contador_decimal_de_pulsos.TXT
Codigo:

ciclo   btfsc   porta,0 ; pregunto si el pulsador S1 está oprimido
   goto   ciclo   ; si no lo está continuo revisándolo
   call   retardo ; si está oprimido retardo 100 ms


Algo se me escapa... me toi volviendo loco seguro...

me voy a dormir... x favor iluminadmeee

Gracias
Título: RE: Que falla en este bucle?
Publicado por: J1M en 12 de Noviembre de 2003, 18:15:00
no podia irme a dormir tnia q saber q pasaba.... pues bien, parece q yo estaba en lo cierto, y no habia fallo de programación, sino en la micropictrainer.... x alguna razon los conmutadores inferiores, cuando pone un 1 (es decir, cuando están arriba) estan metiendo 0V, y al ponerlos donde pone 0 (es decir, abajo), meten los 5 voltios..................... me he dado cuenta al probarlo con los controles analógicos, que hacia bien el cambio...... ahora bien, es un fallo de la serigrafia?? o esq la placa funciona al reves???

weno me voy a dormir, ahora si, trankilo

saludos
Título: RE: Que falla en este bucle?
Publicado por: todopic en 12 de Noviembre de 2003, 19:18:00
Hola Venum, lo del pulsador es segun el diseño del programador... yo acostumbro a colocar los pulsadores a masa o negativo, de manera que al pulsarlos se VEA un cero en la entrada del pic... pero si conectas el pulsador a positivo, y el otro extremo una resistencia a masa, y la union entre la resistencia y el pulsador a la entrada del pic,  al pulsar, el pic VERA un UNO....  es decir, ambos circuitos funcionan, pero su logica es exactamente opuesta....  

y segun cual disposicion emplees, tendras que usar  BTFSS  o BTSSC
suerte!!!!

Norberto
Título: RE: Que falla en este bucle?
Publicado por: pocher en 12 de Noviembre de 2003, 22:53:00
Te voy a intranquilizar de nuevo Venum, en la Trainer 1 (serigrafía) --> 5V, 0(serigrafía) --> 0V.

El esquema de la trainer está hecho con interruptores, de forma que cuando está abierto el interruptor al PIC le entran 5V y cuando cerrado lanza 0V hacia el PIC.

El dibujo del 0 y del 1 en la Trainer está donde toca por tanto el error lo tendrás que buscar por otro sitio.

Un saludo
Título: RE: Que falla en este bucle?
Publicado por: pocher en 12 de Noviembre de 2003, 23:07:00
Pon el programa y te lo probaré cuando disponga de la trainer.
Título: RE: Que falla en este bucle?
Publicado por: J1M en 13 de Noviembre de 2003, 08:01:00
pocher yo tengo la trainer 1.1 y aki parece q está al reves, lo he comprobado con el polimetro, i en efecto es como digo... cuando lo tengo en 0, por las RA está metiendo 5V, cuando lo tengo en 1, está metiendo 0V .... no se si es un fallo en todas las trainers o solo en esta (era un regalo de promoción por la subscripción a unos fasciculos para montar un microbot, x lo q no me extrañaria que regalaran los modelos "defectuosos" )

Salu2 y gracias
Título: RE: Que falla en este bucle?
Publicado por: diego.castano en 26 de Noviembre de 2003, 18:06:00
HOLA  lo del bucle aparentemente es sencillo ahora estoy tratando
de hacer lo mismo leer los switch del puerto "a" pero en un diseño de programa ya hecho (nota AN590 de la microchip "reloj digital" tengo que buscar en que parte del programa hago una lectura de estos switch y que debo cambiar en el programa para que cuando pulse 2 al tiempo el reloj cuente la hora hasta las 1:10
si de pronto conocen la respuesta les agradezco responder al e-mail diego.castano01@usc.edu.co ya que los temas concuerdan e algo

GRACIAS