Autor Tema: Programa basico con niple  (Leído 6880 veces)

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

Desconectado fievel

  • PIC10
  • *
  • Mensajes: 15
Programa basico con niple
« en: 06 de Enero de 2016, 20:31:30 »
Hola a tod@s. Soy nuevo en el foro y escribo porque quiero hacer una pequeña aplicación con un pic y quiero diseñar el programa con el sofware de niple ya que de ensambler no tengo idea, pero con niple tengo varias dudas entonces si alguien me puede hechar una mano le expondria lo que necesito y seguro lo soluciona ya que es muy simple.
Muchas gracias.

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4154
Re:Programa basico con niple
« Respuesta #1 en: 07 de Enero de 2016, 02:53:44 »
Pues para que te echemos una mano debes de ser un poco mas expplicito en lo que necesitas o dudas.
Soy partidario de explicarte las dudas y que el programa lo vayas realizando tu para asi aprender mejor.
Evidentemente te iriamos corrijiendo los fallos o dudas. :)
Todos los días se aprende algo nuevo.

Desconectado fievel

  • PIC10
  • *
  • Mensajes: 15
Re:Programa basico con niple
« Respuesta #2 en: 07 de Enero de 2016, 22:26:09 »
Hola fer_TACA, gracias por tu pronta respuesta.
El diagrama que quiero realizar está basado en un pic 12F629 (como ves es muy chiquitín) pero creo que sirve para lo que quiero y mientras no me llegan otros serviría para crear el proyecto en una placa de pruebas., Tengo configurado el oscilador interno y en la configuración de puertos tengo como salidas la Gp5 y Gp4 y como entradas la Gp0, Gp1 y Gp2, llevando una de las entradas a nivel alto quiero que una salida se ponga en intermitente durante el tiempo que yo le programe mediante los temporizadores hasta que pase la entrada a nivel bajo y así con la otra entrada y salida, la entrada que me queda quiero que ponga a nivel bajo las dos salidas independientemente de cual estuviera a nivel alto, he estado mirando varios tutoriales pero o son muy complejos para hacer lo que quiero o son tan simples que solo encienden un led por tiempo definido, entonces mi problema es que herramienta usar para que las salidas pasen de estado alto a bajo en función de las entradas.
Se que es muy básico pero te agradecería que me echaras una mano con unas breves explicaciones , no pretendo que me lo hagas tu ni que pierdas mucho tiempo con estas sencilleces.
gracias

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4154
Re:Programa basico con niple
« Respuesta #3 en: 08 de Enero de 2016, 03:10:03 »
Vayamos por lo simple y práctico para aprender, aunque esto luego no sea lo mas eficiente del programa. Te voy a indicar los pasos, lo realizas pasando al diagrama de bloques, adjuntas lo creado y se te corrije.

Pasos::

1º Una vez que creas el proyecto y le das el nombre con el que quieres tener guardado el programa, eliges el tipo de micro a utilizar.
2º Debes ir a la seccion de configuración del micro elegido, seleccionando lo que has indicado: ocilador interno,....
3º luego ya puedes empezar a añadir bloques, configurando primero, los pines que son entrada, los que son salida, etc.
4º Debes proceder a insertar el bloque de comprobar el estado de una de las entradas.
5º Si es el nivel que quierses activas la salida correspondiente y si no pasas al punto 9º
6º Realizas el retardo que precises
7º Vuelves a pasar la salida activada a desactivarla
8º Regresas al punto 4, repitiendo los puntos 4,5 y 6 hasta que veas que la entrada ha dejado de estar al nivel deseado
9º  y en ese punto pasas a realizar lo mismo con la otra entrada y salida.
 En principio creo que debes empezar por ahi para ver la logica. Me diras, pero y la otra entrada que apaga las 2 salidas. Bien por eso te decia que lo indicado hasta aqui no era la forma mas eficiente del programa dado que lo mejor es realizarlo con interrupciones pero eso es un "pelin" mas complicado y es mejor empezar por lo básico e ir aprendiendo poco a poco si eso es lo que deseas.
Una vez que veas que funciona lo indicado hasta ahora veremos la forma de apagar las luces usando la tercera entrada, sin el uso de interrupciones, asi como el funcionamiento de los timers ya que los delay o retardos dejan el micro como congelado sin poder realizar treas en paralelo mientras discurre el tiempo procesado.
De esta manera sale el programa un poco mas argo pero ya lo reduciremos y saldrá mas eficiente.
Pero todo esto es mejor irlo procesando poco a poco si lo que quieres es ir empezando poco a poco.
Para finalizar y no menos improtante queda una cosa de los micros que has elegido, tienes que comprobar que para que trabaje como oscilador interno, en las ultimas posiciones de memoria traen de fabrica pregrabado un valor en su memoria para el ajuste de la frecuencia de trabajo(calibración), pues bien, antes de grabar el ejecutabe generado por NIple debes de leer ese dato y te lo apuntas y a la hora de grabar el micro, una vez cargado tu hex en la memoria del grabador, tienes que editar esas posiciones ultimas y colocar el valor que has apuntado. Si no lo haces asi se pierde la calibracon del oscilador interno.
Bieno espero lo realizado para corregir.

« Última modificación: 08 de Enero de 2016, 03:14:59 por Fer_TACA »
Todos los días se aprende algo nuevo.

Desconectado fievel

  • PIC10
  • *
  • Mensajes: 15
Re:Programa basico con niple
« Respuesta #4 en: 09 de Enero de 2016, 19:07:28 »
Hola. Una duda, y ya es al principio, en el punto cuatro  que indicas comprobar el estado de las entradas no se justamente cual de los bloques tengo que insertar para configurarlo, no se si es en asignar un valor o en puertos , se que para activar las salidas tengo que asignar un valor a un bit y poner dicha salida en uno o cero para que se ponga en estado alto o bajo pero no se que inserción tengo que realizar para que lea las entrada.
Se que es de mínimos pero en el manual me hago un lío con eso.
Gracias.

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4154
Re:Programa basico con niple
« Respuesta #5 en: 09 de Enero de 2016, 19:59:43 »
Para preguntar puedes utilizar la opción de "condición" bien desde el explorador o con el icono, según la imagen.
Luego seleccionas la entrada que quieras y listo.
Todos los días se aprende algo nuevo.

Desconectado fievel

  • PIC10
  • *
  • Mensajes: 15
Re:Programa basico con niple
« Respuesta #6 en: 09 de Enero de 2016, 22:35:39 »
Después de configurar los puertos inserto el globo de comparar bit para Gp0 y lo pongo en estado alto(1) luego indico que la salida deGp5 se ponga en estado alto que estea así durante 500msg, que pase a estado bajo que estea 500mse y cierro e bucle, con eso "creo" que estaria en intermitente un tiempo indefinido( hasta que  mas adelante la Gp2 la configuremos para que la apage, pero al querer realizar eso mismo con la Gp1 supongo que tengo que crear otro diagrama partiendo del estado de los puertos pero creo que no es posible porque me da error, te adjunto archivo( haber como lo ves)
Nota: la idea es que cuando Gp0 esta en estado alto Gp5 estea realizando una intermitencia hasta que Gp2 se ponga en 1( mas adelante) y la pase a estado bajo.

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4154
Re:Programa basico con niple
« Respuesta #7 en: 10 de Enero de 2016, 14:05:47 »
Animo que vas bien.
Un par de cosas, según la ultima figura estas cerrando otra vez el bucle poniendo GP5 a 1. Con eso vas a estar siempre ahí cuando se cumpla que GP0 es igual a 1 y no saldrás del bucle nunca. Lo que debes de realizar es:
- en vez de regresar a GP5=1 regresa al bloque de pregunta si GP0=1. Con eso ya sales del bucle, aunque no estarás de forma indefinida como pretendes. De momento te vale para que vayas aprendiendo el desarrollo del programa.
- Con eso tienes completa la rama del si, Ahora tienes que terminar la rama del no, que debes de realizarla de la misma forma para completar las 2 temporizaciones y en ella puedes como has empezado comprobando el estado de GP1.
 - Después de completar lo anterior y que veas que te funciona pasaremos a las intermitencias de forma indefinida.

Ahora vayamos con el error. Este no es u error como tal, según la figura 1. Se trata de un aviso ya que quieres colocar otro bloque justo en el bloque de configuración de puertos. Ya tienes puesto 1 (el de comprobación de GP0=1), por eso te dice que no puedes colocar otro bloque mas.

Para finalizar un par de aclaraciones y/o preguntas mas:
- ¿Que versión de Niple estas utilizando? Si es la 6.2, en vez de poner la s figuras adjunta el fichero npl del proyecto. De esa forma puedo abrirlo y corregirlo además de volverá enviártelo para que veas las diferencias entre lo que haces y lo que se te propone.
- Cómo simulas lo realizado ¿con una placa física con un simulador como Proteus?
Todos los días se aprende algo nuevo.

Desconectado fievel

  • PIC10
  • *
  • Mensajes: 15
Re:Programa basico con niple
« Respuesta #8 en: 10 de Enero de 2016, 15:03:01 »
La versión que utilizo es la V5.2, ya tiene tiempo, he visto que utilizas la 6.2 y he descargado la versión demo para trabajar con ella y mandarte las imágenes de ella pero no me da permisos para trabajar con el 12F629, entonces si crees que es mejor esa puedo pedir la licencia o si quieres cambiamos al pic 16f84a que si que da permisos y tengo uno para hacer el prototipo.
la idea de simular lo que realizaremos  es en una plaquita de protoboard, he visto el programa de proteus pero nunca he trabajado con el, si crees que seria mas eficiente y es sencillo para empezar puedo ponerlo a andar.
Como me indicas he paso la flecha desde el último temporizador a" Bit Gp0=1" pero la trama del no "Gp0=0 yo quiero que con esa condición Gp5 estea a valor bajo, si creo otro globo donde indique Bit Gp0=0 y lo saco del globo anterior de" Bit gp0= 1" se pone la linea en rojo.
He intentado generar un archivo Asm de la primera rama(la del si) pero me da error, no se el porque,
Quiero entender en el programa que el globo de" incio" e el de "configurar puertos" solo se poner en el inicio y todos los demas se conectan desde esos porque me hago algo de lio de donde quitar los globos para que sea el sitio correcto.
Ya me dices.

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4154
Re:Programa basico con niple
« Respuesta #9 en: 10 de Enero de 2016, 18:51:04 »
Para lo de la licencia depende de ti pues me imagino que tendrá un coste.
Se puede hacer perfectamente con el 16F84 y la versión demo de 6.2
Los globos (bloques) se pueden poner uno debajo de otro excepto los de decision. Si consigues la demo de la versión 6.2 mañana adjunto un diagrama de lo que llevas realizado hasta ahora y un pequeño avance de lo que quieres con una breve ezplicaciin.
Por otra parte pada adjuntar archivos debes primero comprimirlos y después de bajo de la zona de escribir los post aparecela opción de adjuntos y otras opciones pinchas y buscas el archivo ckmprikido.
Perdona por las faltas estoy respondiendo desde el móvil.
« Última modificación: 10 de Enero de 2016, 18:55:14 por Fer_TACA »
Todos los días se aprende algo nuevo.

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4154
Re:Programa basico con niple
« Respuesta #10 en: 10 de Enero de 2016, 18:54:16 »
¡Ah! Las líneas en rojo no son error. Para una mejor interpretación del diagrama,  al llegar a los bloques de decisión, Niple los diferencia como azul dl camino del si y con rojo el camino del no.
« Última modificación: 10 de Enero de 2016, 18:56:20 por Fer_TACA »
Todos los días se aprende algo nuevo.

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4154
Re:Programa basico con niple
« Respuesta #11 en: 11 de Enero de 2016, 13:59:06 »
Te adjunto el programa, tal y como he interpretado lo que necesitarías.
He usado el 16F84 y como la versión demo creo que solo permite  poner 20 bloques he intentado reducirlo al máximo para que puedas verlo.
Te cuento como entradas he utilizado RB0, RB1 y RB2 y como salidas RA0 y RA1. Cuando se activa RB1 se pone la temporización de la salida de RA0. Si se activa la entrada RB2 se activa la salida RA1 y cuando se activa RB0 se van a apagar siempre RA0 y RA1.
Ahora bien esto tiene un problema que  a ver si lo detectas, pues no es exactamente 100% lo que quieres. Lo he realizado asi para que veas la lógica del programa.
Cuando termine de escribir lo voy a corregir para que aprecies el efecto y ese si sea compatible 100% para lo que quieres realizar, pero me gustaría que fueras tu el que encontrase la solución.
Todos los días se aprende algo nuevo.

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4154
Re:Programa basico con niple
« Respuesta #12 en: 11 de Enero de 2016, 13:59:47 »
Bueno parece que no puedo adjuntar el fichero, voy a ver si se puede resolver y si no te adjunto la imagen del proyecto.
Todos los días se aprende algo nuevo.

Desconectado Fer_TACA

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 4154
Re:Programa basico con niple
« Respuesta #13 en: 11 de Enero de 2016, 14:03:55 »
El archivo
« Última modificación: 11 de Enero de 2016, 14:20:02 por Fer_TACA »
Todos los días se aprende algo nuevo.

Desconectado fievel

  • PIC10
  • *
  • Mensajes: 15
Re:Programa basico con niple
« Respuesta #14 en: 11 de Enero de 2016, 19:31:46 »
Hola, ya veo que has trabajado mas que yo, gracias, lo tengo ya  abierto en Niple por lo que veo estaría listo para copilarlo y ver el funcionamiento, en el pic 16F84A Funcionaria? porque es el que tengo, miraré también si logro simularlo en proteus como practica  y ya te cuento.
Seguramente me surgirán  dudas, tengo también descargado el manual de niple le echaré un buen vistazo porque hay cosas básicas que hay que saber.


 

anything