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?
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