Autor Tema: Niple mi primer proyecto  (Leído 2002 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado beasy

  • PIC10
  • *
  • Mensajes: 8
Niple mi primer proyecto
« en: 11 de Marzo de 2020, 12:49:06 »
Programacion con Niple.

Hola , espero que puedan ayudarme .
Soy muy nuevo en esto asi que agredeceria respuestas no muy tecnicas por que mi cerebro podría quedar en un bucle infinito :D.

La primer parte del video muestra un termostato con timer corriendo en proteus sin mayores problemas pero en fisico no logro hacerlo funcionar.
Decidi entonces hacer un simple on/off y quemar el pic para ver si funcionaba en fisico , tampoco funciono.
Entonces supongo que el problema no esta en el programa.
En los videos se ve como lo grabo y las configuraciones.

https://www.dropbox.com/transfer/AAAAADUc1Nx8w51xnmmYWtwfPVghTpyl3L1UUbqbfdmPkBafZD3baFs

Que error puedo estar cometiendo?

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4036
Re:Niple mi primer proyecto
« Respuesta #1 en: 11 de Marzo de 2020, 15:25:25 »
Hola Beasy.

Aunque entiendo bien lo que explicas en tu consulta, no comprendo bien como has realizado las cosas.

Por lo que he apreciado en el video, la primera parte se trata de un video de demostración creado por el propio Niple y que lo que requieres es que has montado el esquema eléctrico del video y no te funciona.
Me imagino que disponías del programa con extensión. npl y que lo has compilado y has obtenido el fichero hex que es que debes de quemar en el pic para que se realice las funciones indicadas en el video.
En la simulación del on-off del led si que se observa que funciona. Dado que es una cosa tan simple, solo me queda indicarte una cosa y es que el problema puede estar en la parte física que tengas algo que no se corresponda con la realidad.
La parte de la grabación del pic parece correcta, yo empezaría por revisar todas las conexiones: alimentación del pic (+5V), oscilador(cristal con sus condensadores) y la conexión del led.

Si adjuntas los proyectos npl, en particular el del on-off lo podría revisar. Pero aparentemente esta bien.

F.
Todos los días se aprende algo nuevo.

Desconectado beasy

  • PIC10
  • *
  • Mensajes: 8
Re:Niple mi primer proyecto
« Respuesta #2 en: 11 de Marzo de 2020, 18:53:58 »
Hola
Antes que nada eternamente agradecido de que hayas respondido a mi pedido.
En realidad es un video que yo hice en mi PC (Los dos), no es un video de Niple.
La razon por la cual en Proteus aparece el logo de Niple es por que yo baje un proyecto de ellos como para tener una base , lo fui modificando a mis necesidades y luego lo guarde asi.
En el video muestro el primer proyecto que hice yo (Nada bajado de Niple). Es un termostato con un timer y luego algunos adornos de funcionamiento pero basicamente controla temperatura con grados programables durante un tiempo tambien programable.
Finalizado el diagrama en bloques genere el archivo hex y lo cargue en Proteus.
Cuando estaba feliz de haber hecho algo de 3000 lineas de programa , de probarlo en proteus y ver que funciona ,todo se desmorono en lo fisico que no logro que funcione. Aclaro que no escribi ni una linea de codigo , lo hizo todo Niple.
Como se ve en el video decidi hacer algo super basico como un on/off que active una salida .Esto tampoco me funciono por lo que veo que no se trata de la complejidad si no de algun punto que desconozco.
En el video tambien muestro como cargo el archivo hex y quemo el pic por si hay algun error alli.
Lo fisico lo hice igual que el diagrama de Proteus con su oscilador que ahora no recuerdo su nombre pero es un condensador de 33pf a
- y el otro extremo a pata 9 (OSC1) y una R de 1k a OSC1 y el otro extremo a + . No utilice cristal.
Despues voy a subir un video de como lo arme en protoboard por las dudas.
Ahora una pregunta , si yo tengo una salida 0 y una entrada 1 si mido la tension ahi tendría que tener casi 5v no es así? Si fuera asi a mi no me pasa eso , me da cerca de 2v.
Voy a revisar la alimentación del Pic . La polaridad del led no es una duda , ademas mido tension con el tester para confirmar.
Adjunto el codigo generado por Niple.
Gracias nuevamente, saludos

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4036
Re:Niple mi primer proyecto
« Respuesta #3 en: 12 de Marzo de 2020, 09:27:55 »
Hola,
acabo de mirar el asm has adjuntado y observo que el oscilador que has empleado dentro de Niple es del tipo XT, es decir un cristal.
Sin embargo en tu post indicas que estas utilizando una oscilación del tipo RC.
Niple solo permite utilizar XT o HS por lo que tienes 2 opciones:
a.- Colocar un cristal en tu montaje.
b.- Cambiar directamente en el ASM la linea donde pone XT  colocar RC. Ver adjunto. Creo que te funcionaría.

Después geenra de nuevo el HEX.

Recuerda poner una resistencia a +5V en la pata del reset.

F:
Todos los días se aprende algo nuevo.

Desconectado beasy

  • PIC10
  • *
  • Mensajes: 8
Re:Niple mi primer proyecto
« Respuesta #4 en: 12 de Marzo de 2020, 11:35:15 »
Hola Fer , perfecto . En estos días lo hago y te comento.
Muchas gracias.

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4036
Re:Niple mi primer proyecto
« Respuesta #5 en: 12 de Marzo de 2020, 11:46:11 »
La mejor opcion es que coloques un cristal.
Todos los días se aprende algo nuevo.

Desconectado beasy

  • PIC10
  • *
  • Mensajes: 8
Re:Niple mi primer proyecto
« Respuesta #6 en: 17 de Marzo de 2020, 09:48:13 »
Perfecto en estos dias pruebo con cristal y RC

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4036
Re:Niple mi primer proyecto
« Respuesta #7 en: 17 de Marzo de 2020, 18:00:24 »
Dale y nos dices que tal fue.
Todos los días se aprende algo nuevo.

Desconectado beasy

  • PIC10
  • *
  • Mensajes: 8
Re:Niple mi primer proyecto
« Respuesta #8 en: 15 de Noviembre de 2020, 21:44:33 »
Hola , desaparecí un tiempo . Por suerte con mucho trabajo y poco tiempo para terminar el proyecto.
Con tus indicaciones y otras cosas mas que aprendi en este tiempo consegui que funcione.
Para recordarte es un termostato con tiempo y tempertura programable.
Lo probe en fisico y funciona perfecto con un pequeño detalle , a veces se apaga solo antes del tiempo programado. Pero siempre despues de las 5 hs de estar prendido. Tambien una vez me paso que el termostato seguia funcionando y el tiempo me quedo en 05:07:57 . No siguio con su cuenta regresiva .
Tengo que seguir investigando para corregir ese detalle y tambien aprender a colocar un watchdoog. No entiendo bien como hacerlo.
De todas maneras a lo que estaba y verlo funcionar en la realidad es un gran avance para mi.
Esta respuesta mas que nada era para contarte un poco como me fue y no dejarte colgado con la respuesta.
Ya habrire otro tema para empezar a aprender sobre el watchdoog.
Saludos

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4036
Re:Niple mi primer proyecto
« Respuesta #9 en: 16 de Noviembre de 2020, 15:29:14 »
Con respecto a los problemas de actuación del programa podría ser debido a varias causas. Una podría ser alguna interferencia en el pic en algún momento determinado. Otra podría ser, y si siempre es después de pasar 5 horas puede ser debido a no tener bien calculado el tiempo de actuación. Deberías de darle una repasada.

Lo mismo para cuando dices que se paro el contador. Debes de comprobar si esta bien realizada la comprobación de haber llegado al final de la cuenta que hayas establecido.

Referente al watchdog, solo debes de de activarlo en las configuraciones de la CPU. Puedes elegir entre manual y automático. Si eliges automático (nunca lo utilice así) creo que Niple inserta los bloques correspondientes de forma automática. Cuando lo utilice (Siempre) lo utilice en modo manual. En esta forma tienes que tener la precaución de que el watchdog nuca se desborde (al final no es mas que un contador) y colocar un bloque de reiniciar el Watchdog cada cierto tiempo, normalmente siempre lo he colocado de forma que cada 18msg de funcionamiento de mi programa, se reinicialice el watchdog. Ese tiempo lo tienes que controlar comprobando el tiempo que se tarda en ejecutar cada una de las  instrucciones bloques que vayas insertando en el programa.

F.
Todos los días se aprende algo nuevo.

Desconectado beasy

  • PIC10
  • *
  • Mensajes: 8
Re:Niple mi primer proyecto
« Respuesta #10 en: 16 de Noviembre de 2020, 22:16:58 »
Es cuenta regresiva con TMR0 , tilde "Alarma bit TMR0 al finalizar" y controlo ese bit para el apagado gral.
No es siempre en el mismo tiempo que se me apaga . Yo lo programo en 7 u 8hs y que empiece a descontar.
Voy a repasar todo , quizas sea algo en lo fisico ya que con proteus no me pasa. Podrian ser los ruidos.
Las pruebas que hice con el watchdoog siempre fueron en automatico , probare en manual pero no se cual es la diferencia. Tampoco me doy cuenta todavia que puedo poner en la interrupcion para restablecer el sistema y que siga funcionando.
Tu comentario "Ese tiempo lo tienes que controlar comprobando el tiempo que se tarda en ejecutar cada una de las  instrucciones bloques que vayas insertando en el programa" me ayudo para entender un poco su funcionamiento.
Antes de terminar el programa hacia pruebas parciales para ver como iba , al ir agregando funciones en algun punto ya no me funcionaba mas. Ahora entiendo que al agregar intrucciones sin cambiar el preescalado del watchdoog trae inconvenientes.
Como calculo el tiempo de las instrucciones?
Ayer compre los cuatro primeros tomos de la Biblia con Niple, quizas me ayude en algo.
Gracias Fer
« Última modificación: 16 de Noviembre de 2020, 22:31:36 por beasy »

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4036
Re:Niple mi primer proyecto
« Respuesta #11 en: 17 de Noviembre de 2020, 14:50:03 »
Hola beasy

Mira la diferencia entre el watchdog entre automático y manual radica en que de manera automática Niple te va a insertar de manera automática, al compilar las instrucciones necesarias para que no se produzca el rebose del contador. de manera manual tienes que proceder como insertarla tu cada cierto tiempo.

¿Cómo se calcula el tiempo? Si suponemos que estamos utilizando un cristal para la oscilación de 4MHz, la oscilación interna será de un  cuatro veces la frecuencia. Lo que es lo mismo 1/f --> 1/4000000= 0,00000025sg que si multiplicamos por 4 da =0,000001 sg --> 1uSg.

Bien pues todas las instrucciones consumen 1usg (tiempo en ejecutarse), excepto las de salto como ir a una subrutina, a una interrupción o la desviación del programa en una comprobación de estado que consumen 2 ciclos o 2usg. Así de este modo tienes que ir instrucción a instrucción sumando tiempos y colocar el reset del contador del watchdog antes que se desborde. Por ejemplo 18 msg.

Pero es muy importante sobre todo que tengas en cuenta que si utilizas el Watchdog, NO puedes utilizar el TMR0. Si tienes que utilizar temporizaciones entonces debes de usar algún otro timer (TMR1, TMR2,...) que disponga el pic usado.

F.

P.D.: Gracias por la adquisición de los libros.

Todos los días se aprende algo nuevo.

Desconectado beasy

  • PIC10
  • *
  • Mensajes: 8
Re:Niple mi primer proyecto
« Respuesta #12 en: 18 de Noviembre de 2020, 10:18:57 »
Excelente!!!!!. voy a hacer todas las correcciones necesarias de acuerdo a tus comentarios y te cuento, saludos