Autor Tema: Waitms desajustado  (Leído 2134 veces)

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

Desconectado wolfman77

  • PIC12
  • **
  • Mensajes: 82
    • Dos en la ruta
Waitms desajustado
« en: 08 de Junio de 2010, 11:04:37 »
Buenos dias a todos! despues de renegar con el programador y armar el JDMD que va de 10, procedi a programar el pic, es un 16F818.
Lo hice todo en basic con el Pic Simulator Ide, y todo ok, lo simule en el proteus y va como cañonazo, lo programe con el ICProg y sin problemas, ahora la falla es:
Los tiempos originales que puse en waitms eran de 500 y para pasar a la siguiente salida tardaba aproximadamente 15seg, baje el tiempo a 4 y se acerca a un segundo
Por que no me toma los tiempos reales que coloco?

Despues tengo otro problema, que no me toma el nivel alto en alguna de las entradas para cambiar la secuencia, pero supongo que es por que no coloco la resistencia de 10K a masa en las entradas no?

Código: [Seleccionar]
AllDigital
TRISA = %11111111                            'todos los pines PORTA como entradas
TRISB = %00000000                            'todos los pines PORTB como salidas

inicio:
PORTB = %00000001
switcheo:                                    'Deteccion de estados de selectora
If PORTA.1 = 1 Then Goto goleft
If PORTA.0 = 1 Then Goto scanner
If PORTA.7 = 1 Then Goto doscanner
If PORTA.2 = 1 Then Goto full

goleft:                                      'Scanner basico
WaitMs 500
PORTB = ShiftLeft(PORTB, 1)
If PORTB = %10000000 Then Goto goright
Goto switcheo
goright:
WaitMs 500
PORTB = ShiftRight(PORTB, 1)
If PORTB = %00000001 Then Goto switcheo
Goto goright

scanner:                                     'Scanner doble y sentidos inversos
PORTB = %10000001
WaitMs 500
PORTB = %01000010
WaitMs 500
PORTB = %00100100
WaitMs 500
PORTB = %00011000
WaitMs 500
PORTB = %00100100
WaitMs 500
PORTB = %01000010
WaitMs 500
Goto switcheo

doscanner:                                   'Scanner doble mismo sentido
PORTB = %10001000
WaitMs 500
PORTB = %01000100
WaitMs 500
PORTB = %00100010
WaitMs 500
PORTB = %00010001
WaitMs 500
PORTB = %00100010
WaitMs 500
PORTB = %01000100
WaitMs 500
Goto switcheo

full:                                        'Todos intermitentes
PORTB = %11111111
WaitMs 500
PORTB = %00000000
WaitMs 500
Goto switcheo
End                                               



Gracias por la ayuda  :wink:


Volviendo al mundo de los PIC....

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
Re: Waitms desajustado
« Respuesta #1 en: 08 de Junio de 2010, 16:45:47 »
Hola wolfman77, con respecto a lo primero el fallo más común es que se nos olvida indicarle al PSI a que frecuencia trabaja el Pic.
y a lo segundo no sé. Lo único que te puedo decir es que toda entrada tiene que estar en todo momento polarizada.
Saludos desde Granada, España.

Desconectado wolfman77

  • PIC12
  • **
  • Mensajes: 82
    • Dos en la ruta
Re: Waitms desajustado
« Respuesta #2 en: 09 de Junio de 2010, 10:22:01 »
Hola dogflu66, gracias por responder  :)
Le indico al programa que utilice el reloj interno de 4mhz, lo raro es que en el simulador (proteus) anda de 10, pero en la practica no  :shock:

Lo de las entradas polarizadas si, me imagino que puede ser eso ya que no el puse las resistencias a masa  :oops:

Exitos!
Volviendo al mundo de los PIC....


 

anything