Autor Tema: Problema con picbasic  (Leído 2908 veces)

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

Desconectado firewer

  • PIC10
  • *
  • Mensajes: 3
Problema con picbasic
« en: 22 de Marzo de 2010, 17:23:04 »
Hola a todos, habro este post porque tengo un problema con mi programa, me estoy iniciando en estos temas y estoy un poco verde.

El tema es el siguient:

Mi programa consiste en poder seleccionar mediante 2 pulsadores 4 velocidades, cada una de las velocidades "mueve" a la vez un motor dc y parpadee un led a una determinada velocidad.

Como ejemplo podrian ser:
 100rpm y high 5: pause 500: low 5: pause 500
 300rpm y high 5: pause 300: low 5: pause 300
 500rpm y high 5: pause 100: low 5: pause 100

El problema esta en que cuando selecciono por ejemplo la velocidad 1, al intentar cambiar a la 2 el pulsador no responde, se queda como "colgado" si insisto a las 5, 6 pulsaciones consigo cambiar de velocidad. En el codigo solo e implementado el led, y me gustaria poder solucionar el tema cuelgues antes de implementar el pwm del motor DC y complicar el codigo con sensores y demas que tengo que añadir al codigo.


Código: [Seleccionar]
XTAL = 4

cont var word
cmcon=7
TRISB=0
TRISA=%00000011
PORTB=0
cont=1
inicio:

if PORTA.0=0 then
   cont=cont*2
   if cont>=16 then
   cont=16
   endif
   pause 200
   else 
   cont=cont
endif

if PORTA.1=0 then
    cont=cont/2
if cont<=1 then
cont=1
endif
pause 200
else
cont=cont
endif


if cont = 1 
   High PORTB.7 ;Indicador led de circuito apagado
   pause 30
high 5
pause 700
low 5
pause 700
   else
   low portb.7
endif

if cont = 2 
   High 0   ;Led velocidad 1
high 5
pause 500
low 5
pause 500
   else
   low portb.0
endif


if cont = 4 
   high 0
   high 1   ;Led velocidad 2
high 5
pause 400
low 5
pause 400
   else
   low portb.1
endif

if cont = 8 
   high 0
   high 1
   high 2   ;Led velocidad 3
high 5
pause 200
low 5
pause 200

   else
   low portb.2
endif

if cont = 16
   high 0
   high 1
   high 2
   high 3   ;Led velocidad 4
high 5
pause 100
low 5
pause 100

   else
   low portb.3
endif
goto inicio
end

Tambien e probado haciendolo con subrutinas, pero el problema persiste. Utilizo un PIC16F628A
Saludos y gracias.
« Última modificación: 22 de Marzo de 2010, 17:35:49 por firewer »

Desconectado Fer_TACA

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4154
Re: Problema con picbasic
« Respuesta #1 en: 22 de Marzo de 2010, 17:58:39 »
Por lo que cuentas puede ser un problema de los rebotes al accionarse el(os) pulsador(es).
me parece que deberias de implementar un retardo software entre cada lectura del pulsador y asi tener las señales estabilizadas.
Guardar el valor leido la primera vez y pasado el retardo volver a leer y ver si coinciden los estados y e funcion de eso actuar tu programa.
Del orden de 20msg seria suficiente.

De todas formas hay gente mas avanzada que yo que seguramente te podrá ayudar mejor, pero lo que te indico es un buen principio y notas para implementar en cada programa que trate de leer el estado de pulsadores, interrruptores,........

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

Desconectado firewer

  • PIC10
  • *
  • Mensajes: 3
Re: Problema con picbasic
« Respuesta #2 en: 23 de Marzo de 2010, 11:25:29 »
gracias Fer_TACA me pongo en ello a ver si lo consigo solucionar.

Desconectado Fer_TACA

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4154
Re: Problema con picbasic
« Respuesta #3 en: 23 de Marzo de 2010, 17:52:34 »
Ya nos cuentas................................... :mrgreen:
Todos los días se aprende algo nuevo.

Desconectado Mario

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 873
Re: Problema con picbasic
« Respuesta #4 en: 23 de Marzo de 2010, 18:44:57 »
¿Por qué no intentas con SELECT CASE?

Al parecer sería mejor tomar esos dos bits, aislarlos y realizar un caso por combinación (solo para que el código quede mejor estructurado).

Tengo tiempo que no entro al foro, ni uso PBP, pero quizá eso ayude.
La buena administración es utilizar el sentido común y la regla de oro; aunque el sentido común no es tan común como quisiéramos que fuera y, quien tiene el oro, hace las reglas.
George Terry

"A loser will defeat a genius with hard work"
Rock Lee

Desconectado firewer

  • PIC10
  • *
  • Mensajes: 3
Re: Problema con picbasic
« Respuesta #5 en: 15 de Abril de 2010, 16:01:14 »
estoy en ello, de momento no e conseguido solucionarlo de ninguna de las maneras
« Última modificación: 15 de Abril de 2010, 16:42:57 por firewer »

Desconectado janiro74

  • PIC10
  • *
  • Mensajes: 44
Re: Problema con picbasic
« Respuesta #6 en: 17 de Abril de 2010, 10:39:00 »
creo ke lo ke te pasa es ke el programa va lellendo linea a linea y al tener retardo por medio cuando pulsas los botones el programa se encuentra en posiciones ke no ve ke has pulsado por eso te responde aveces cuando coincide ke pulsas en boton en el momento ke te escuha el programa. Yo lo haria con while y wend para cada situacion y un while wend general ke abarcara todo el programa en vez de usar el goto main.
Yo utilizo mikrobasic pro y no se si lo ke de digo es muy correcto para pbp.
otra cosa si lo estas prbando ya con los motores coloca condensadores de filtro y uno de almenos 10uf en las patillas del micro
a mi me pasaba ke los picos de los motores me reseteaban el micro
espero te sirva esto de algo y nos cuentas para seguir probando
« Última modificación: 17 de Abril de 2010, 12:56:51 por janiro74 »


 

anything