Autor Tema: Ayuda con programación de un PIC16f628a y delays  (Leído 2282 veces)

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

Desconectado Varder

  • PIC10
  • *
  • Mensajes: 1
Ayuda con programación de un PIC16f628a y delays
« en: 30 de Marzo de 2013, 13:30:01 »
Saludos a toda la comunidad.

El problema que tengo es el siguiente: Estoy realizando un programa que mediante un pulsador B1, al presionarlo haga la siguiente secuencia: Encienda 4 leds, que pase un tiempo de 5 seg y se apaguen 2 leds, que pase otro tiempo de 5 seg y se apaguen los otros 2 leds y fin. Al volver a presionar B1 deberá hacer la secuencia nuevamente.

El problema es que el programa también deberá cumplir lo siguiente, al presionar B1 nuevamente mientras se realiza la secuencia que mencioné, deberá hacer correr nuevamente la secuencia desde el principio. Ahi es donde estoy teniendo problema no me funciona.

Espero que me puedan ayudar o darme una idea, estoy programando con el microcode studio.

Desconectado RockLee_89

  • PIC16
  • ***
  • Mensajes: 140
Re: Ayuda con programación de un PIC16f628a y delays
« Respuesta #1 en: 31 de Marzo de 2013, 11:33:15 »
hola amigo Varder  veo que eres nuevo aqui asi que bienvenido bueno no se si leeiste las reglas del foro sino chanse dale una leeida, necesitas dar mas detalles de tu problema,  por ejemplo es bueno que pongas el pic a utilizar , el lenguaje de programacion si estas en esta parte del codigo espero estes programando en un lenguaje basic pero suele suceder que muchos los postean en varios foros tanto en basic como en c y asi, otra cosa es ver que programa llevas tu codigo.


biendo asi tu problema es sencillo pero si quieres que funcione al %100 hay que ver el codigo, lo que te pasa a ti es que al poner el delay o el tiempo al llegar a esa instruccion lo que hace el programa es hacerse menso hasta que termina ese tiempo y es por eso que al oprimir el boton nunca responde, bueno para esto hay 2 soluciones las cuales se me ocurren a mi tal vez a otro usuario del foro se le ocurran mas pero para mi estas 2 son las unicas.

espero tu codigo para seguir con tu duda
saludos















Desconectado RockLee_89

  • PIC16
  • ***
  • Mensajes: 140
Re: Ayuda con programación de un PIC16f628a y delays
« Respuesta #2 en: 01 de Abril de 2013, 10:30:16 »
hola amigo Varder  este es 1 solucion pero en realidad hay muchas

Código: [Seleccionar]

Define SIMULATION_WAITMS_VALUE = 10
AllDigital
'CONFIGURACION DE LOS PUERTOS
'------------------------------------------------
TRISB = 0x01
TRISA = 0x00
'------------------------------------------------
'DECLARACION DE VARIABLES
'------------------------------------------------
Dim a1 As Byte
a1 = 0
'------------------------------------------------
'PUERTO A CERO
'------------------------------------------------
PORTA = 0x00
'------------------------------------------------

inicio:


If PORTB.0 = 1 Then  'SI EL BOTON ESTA PRECIONADO EJECUTAR RUTINA
While PORTB.0 = 1
Wend

'ENCIENDE LOS 4 LEDS
PORTA.0 = 1
PORTA.1 = 1
PORTA.2 = 1
PORTA.3 = 1

'ENTA A UN BUCLE FOR PARA PASAR LOS 5 SEGUNDOS Y ESTAR CHECANDO EL RESET DE LA RUTINA
'EN EL SICLO FOR REPETIRA 50 VECES X 100MS TE DARA UN POQUITO MAS DE 5 SEG SOLO ES CUESTION
'SI QUIERES PONERLE 47 O DEPENDE DE LA EXACTITUD O NO IMPORTA MUCHO

For a1 = 0 To 50
If PORTB.0 = 1 Then  'CHECA SI EL BOTON NO ESTA PRECIONADO CADA 100MS
While PORTB.0 = 1
Wend
Goto inicio
Endif
WaitMs 100
Next a1


'APAGO 2 LEDS AL TRANSCURRIR 5 SEGUNDOS

PORTA.0 = 0
PORTA.1 = 0

'Y ENTRO NUEVAMENTE AL SICLO FOR

For a1 = 0 To 50
If PORTB.0 = 1 Then  'CHECA SI EL BOTON NO ESTA PRECIONADO CADA 100MS
While PORTB.0 = 1
Wend
Goto inicio
Endif
WaitMs 100
Next a1


'APAGO 2 LEDS AL TRANSCURRIR 5 SEGUNDOS

PORTA.2 = 0
PORTA.3 = 0
Endif

Goto inicio

le deje algunos comentarios para que te des una idea de como lo hice yo tal vez ati se te ocurra diferente

saludos


 

anything