TODOPIC

Microcontroladores PIC => - Niple - => Mensaje iniciado por: Manuel_B en 03 de Abril de 2007, 18:11:42

Título: Para Canito problema al ejecutar programa
Publicado por: Manuel_B en 03 de Abril de 2007, 18:11:42
Hola mi problema es el siguiente he descargado la ultima demo de Niple 16f84 para familiarizarme con el programa, hago un programa simple como al activar la puerta ra1 se encienda un led que va conectado a la puerta rb0, el programa se ensambla bien y se genera el .HEX sin errores pero cuando lo grabo al pic y lo simulo fisicamenten en una tarjeta pic trainer se me encienden todos los leds del puerto he probado a cambiar la palabra de configuracion y nada no se cual puede ser el fallo.Gracias y un saludo.
Título: Re: Para Canito problema al ejecutar programa
Publicado por: Fer_TACA en 03 de Abril de 2007, 18:31:46
Hola MAnuel:
Puedes poner el fichero .lst para ver el codigo generado y ver que está sucediendo.
Te puedo decri que tengo Niple desde hace unos meses, he realizado varios programas y todos me han funcionado. Puede ser que aunque esté bien compilado pueda haber algun errror de concepto al realizar el programa.
fermin
Título: Re: Para Canito problema al ejecutar programa
Publicado por: Manuel_B en 04 de Abril de 2007, 17:14:19
hola fer TACA en primer lugar darte las gracias por tu interes pero esto que he comentado me ha pasado con todos los programas que he hecho con niple todos de una complejidad muy baja ya que de momento no me atrevo a mas hasta que no solucione este problema.
Adjunto el fichero que me has pedido.
Un saludo.
Título: Re: Para Canito problema al ejecutar programa
Publicado por: Manuel_B en 04 de Abril de 2007, 17:56:30
podria ser que estuviera mal el pic por haber trasteado tanto con el porque el codigo grabado en el pic y el codigo generado es el mismo  pero lo extraño es que tengo dos 16f84 y con los dos hace lo mismo.
Título: Re: Para Canito problema al ejecutar programa
Publicado por: Fer_TACA en 04 de Abril de 2007, 18:04:13
Hola Manuel:
Mira he compilado el ejemplo que has puesto y luego lo he simulado con el programa proteus y la verdad no funciona. Pienso que pueda ser por 2 cosas
1º que la version demo no funcione correctamente, a mi cn la version registrada me funcionan bien todos los programas realizados hasta ahora.
2º Cuando realizas el test de algub interruptor/pulsador etc deberias añadir una rutina de retardo pues todos estos elementos proporcionan rebotes  y no funcionan bien los programas. Los retardos puedes realizarlos bien por software o por Hardware como prefieras.
Voy a seguir investigando.
fermin
Título: Re: Para Canito problema al ejecutar programa
Publicado por: Fer_TACA en 04 de Abril de 2007, 18:20:51
Hola de nuevo manuel:
Acabo de realizar el programa que has puesto y he corregido un par de cositas y lo simulo en proteus y funciona.
Te adjunto la imagen del diagrama que he realizado. Verás que he puesto un sentencia en la comparacion del bit de RA0. cuando la condicion era igual a 0. Tu directamente passabas a volver a configurar el micro y vuelta a comprobar el estado del pulsador.
Normalmente no se debe de realizar nada más que una configuracion de los pines del micro.
Espero haberte ayudado, pero acuerdat de los retardos para los rebotes. Yo no los he puesto por hacer la prueba rapidamente
Fermin
Título: Re: Para Canito problema al ejecutar programa
Publicado por: Fer_TACA en 05 de Abril de 2007, 17:06:40
Haber he estado revisando el diagrama y puede estar un poco confuso. Hay cosas que se han mezclado. Te explico la secuencia más abajo. De todas formas en tu pograma si no detectabas la actuacion de RA0 no hacias nada y volvias al principio del programa configurando de nuevo los puertos.
En estos caso bien o no se hace como tu dices o realizar algo pero nuca volver a configurar los puertos del micro del inicio del programa.
SECUENCIA

1º Se configura el puerto A.
2º Se configura el puerto B.
3º Se comprueba el estado de RA0
4º Si RA0=0 entonces se vuelve al punto 3.
5º Si RA1=1 ponemos RB=1
6º Volvemos al punto 3.

Ahora bien aquí hay un problema y es que siempre que la primera vez RA0=1, entonces RB1 siempre será =1 aunque la segunda vez RA0=0. Por eso el punto 4 quedaría de la siguiente forma:
4º Si RA0=0 ponemos RB1=0 y volvemos al punto 3.

Luego está el tema de los rebotes que se debería colocar un delay entre los puntos 3 y 4 de unos 20msg y volver a comprobar el estado de RA0.

Espero que de esta forma quede un poco más claro.
Fermin
 
Título: Re: Para Canito problema al ejecutar programa
Publicado por: Manuel_B en 06 de Abril de 2007, 09:31:42
hola fermin hice el diagrama como tu me lo mandaste y funciono a la primera con el inconveniente de que todas las salidas del puerto b se quedaban activadas a 1 de manera constante la unica que podia encender y apagar era la rb1 que se activava con ra0 entonces lo que hice fue antes de la instruccion de evaluacion del bit ra0 puse a cero todos los bits del puerto b y funciona perfectamente solo se me activa rb1 si ra0=1. Gracias por tus aclaraciones Fermin me han sido de gran ayuda para poder entender mis errores seguire haciendo programas cada vez mas complejos para ir depurando mis fallos.
un saludo.
manuel
Título: Re: Para Canito problema al ejecutar programa
Publicado por: Fer_TACA en 06 de Abril de 2007, 18:07:19
Hola Manuel:
me alegro que te funcionara.
Por ese paso de las dudas y pocos conocimientos hemos pasado todos y lo unico que hago es reinvertir un poco la ayuda que a mi en su dia me prestaron.
Un saludo
 Fermin