Autor Tema: Ayuda con proyecto pic16f887  (Leído 3689 veces)

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

Desconectado Draveox

  • PIC10
  • *
  • Mensajes: 6
Ayuda con proyecto pic16f887
« en: 02 de Junio de 2016, 17:52:52 »
Hola gente como estan?
Como dice el titulo, estaria necesitando ayuda para hacer este proyecto:
*Cunado se conecta el circuito empieza el conteo en forma binaria de los leds del modulo con un retraso de 500 ms entre cada cuenta.
*la cuenta va de 0 a 255, y se repite indefinidamente.
*con el pulsador p1 se detiene cualquier momento de la cuenta.
*Se reinicia con Reset.

A mi no me esta andando el p1, no se detiene.

Aca les dejo una imagen del circuito:

* Sin título.png
(113.12 kB, 1366x768 - visto 543 veces)

y aca uno del codigo:

* as.png
(61.81 kB, 1366x768 - visto 590 veces)


espero que me puedan ayudar y corregir, gracias desde ya.
saludos

Desconectado Stban

  • PIC12
  • **
  • Mensajes: 78
Re:Ayuda con proyecto pic16f887
« Respuesta #1 en: 02 de Junio de 2016, 20:05:24 »
Hola,

no se detiene el conteo porque monitores la entrada fuera del ciclo for, hace el salto hasta que termina el conteo, coloca el if...then dentro del ciclo for.
El comando if...then ya no necesita el goto solo coloca la etiqueta donde necesitas el salto. i debe ser una variable tipo byte y luego esa variable lo igualas al puerto d.
En el circuito la entrada siempre está en cero, cuando pulsas el botón cambia a uno y tu estas esperando un cero en el if...then.

Saludos

Desconectado Draveox

  • PIC10
  • *
  • Mensajes: 6
Re:Ayuda con proyecto pic16f887
« Respuesta #2 en: 02 de Junio de 2016, 23:02:29 »
Muchas gracias por contestar y por la ayuda, a pesar de eso no se estaria deteniendo.
Si no es mucha molestia me podrias mostrar como quedaria el codigo? debe ser algo muy pavo
gracias

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Ayuda con proyecto pic16f887
« Respuesta #3 en: 03 de Junio de 2016, 01:42:52 »
Si va a Fin no hay nada que lo vuelva al comienzo y lo deje esperando.

Es decir no hay loop infinito. Por lo tanto va a llegar al fin de la memoria y volver a comenzar, lo cual jamas se va a detener

Desconectado Stban

  • PIC12
  • **
  • Mensajes: 78
Re:Ayuda con proyecto pic16f887
« Respuesta #4 en: 04 de Junio de 2016, 12:55:19 »
Entiendo que el reseteo lo haces con el reset del pic (reiniciando en pic), si es eso así quedaría el código:
Código: [Seleccionar]
Device = 16F887
Xtal 4
All_Digital true

TRISD = 0
TRISC = 1

Dim I As Byte
Symbol Leds = PORTD
Symbol Boton = PORTC.0

Inicio:
For I = 0 To 255
If Boton = 1 Then Parar
Leds = I
DelayMS 550
Next
GoTo Inicio

Parar:

End

Saludos

Desconectado Draveox

  • PIC10
  • *
  • Mensajes: 6
Re:Ayuda con proyecto pic16f887
« Respuesta #5 en: 05 de Junio de 2016, 01:34:44 »
Hola devuelta, gracias a los dos por responder, y a vos Stban por tomarte el tiempo de hacer el codigo, lastimosamente no me anduvo, sigue sin parar los leds incluso con tu codigo, no sabria cual es el error a todo esto

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Ayuda con proyecto pic16f887
« Respuesta #6 en: 05 de Junio de 2016, 02:05:52 »
Si va a Fin no hay nada que lo vuelva al comienzo y lo deje esperando.

Es decir no hay loop infinito. Por lo tanto va a llegar al fin de la memoria y volver a comenzar, lo cual jamas se va a detener

Se dan cuenta cual es el error? No programo basic pero veo que es un error. Hasta ahora el unico que conozco que no necesita de un loop infinito ( a pesar que esta ) es programando arduino , en el cual le dan una funcion "loop" para que la gente no se lo olvide, pero mirando los codigos de basic de otras personas tienen este loop infinito.

O si no me entienden... de "Parar", a donde va ?, el micro no deja de ejecutar instrucciones por que llego al End, sigue ejecutando hasta que llega al final de la memoria, y vuelve al comienzo, es decir a ejecutarse todo, es casi como un "reset"
« Última modificación: 05 de Junio de 2016, 03:06:03 por KILLERJC »

Desconectado Draveox

  • PIC10
  • *
  • Mensajes: 6
Re:Ayuda con proyecto pic16f887
« Respuesta #7 en: 09 de Junio de 2016, 22:01:54 »
Si va a Fin no hay nada que lo vuelva al comienzo y lo deje esperando.

Es decir no hay loop infinito. Por lo tanto va a llegar al fin de la memoria y volver a comenzar, lo cual jamas se va a detener

Se dan cuenta cual es el error? No programo basic pero veo que es un error. Hasta ahora el unico que conozco que no necesita de un loop infinito ( a pesar que esta ) es programando arduino , en el cual le dan una funcion "loop" para que la gente no se lo olvide, pero mirando los codigos de basic de otras personas tienen este loop infinito.

O si no me entienden... de "Parar", a donde va ?, el micro no deja de ejecutar instrucciones por que llego al End, sigue ejecutando hasta que llega al final de la memoria, y vuelve al comienzo, es decir a ejecutarse todo, es casi como un "reset"

Hola, espero que anden bien.
Pude hacer el codigo bien al final, es el siguiente...
Código: [Seleccionar]
Device = 16F887
XTAL 4
ALL_DIGITAL true

TRISD = 0
TRISC = 1

Dim I As Byte
Symbol Leds = PORTD
Symbol Boton = PORTC.0

Inicio:
For I = 0 To 255
Leds = I
DelayMS 550
If Boton = 0 Then GoTo Parar
Next
GoTo Inicio

Parar:
Stop

El IF tenia que ir despues del Delay.

Gracias a los dos por la cooperacion
« Última modificación: 09 de Junio de 2016, 22:04:17 por Draveox »