hola dog! llevo mucho tiempo leyendo tus hilos, la verdad es que son muy buenos y me van aclarando muchas dudas ya que esta muy comprensible.
Intento siempre buscar todas las alternativas, antes de molestar con preguntas a los que saben, pero no doy pie con bola, no se si es por el pic, o por el codigo (en la pc me lo simula bien, no creo que sea el codigo ya que es bastante sencillo)
es el dado electronico, pero para correrlo en un 16F84A
'-----CONFIGURAMOS PUERTOS----------
AllDigital 'Todos los pines del PORTA como E/S
TRISA = 0xff 'Configuro el PORTA completo como entrada.
TRISB = 0x00 'Configuro el PORTB completo como salida.
PORTB.7 = 1
'------DECLARO VARIABLES -----------
Dim i As Byte 'i contendrá el valor del dado en cada momento.
loop: 'bucle principal
PORTB = %10000000 'Apago todos los leds menos el de Standby
If PORTA.0 = 1 Then 'Si el pulsador esta en alto...
Gosub lanzo_dado
Endif
Goto loop
End 'Fin del programa principal
'--------------------------------------------------
'Esta rutina lanza el dado y muestra el resultado
'--------------------------------------------------
lanzo_dado:
PORTB.7 = 0 ' apago el standby
i = 0 'Valor inicial de i
While PORTA.0 = 1 'bucle principal
i = i + 1 'Sumo 1 a i
If i = 7 Then 'si pasa de 6...
i = 1 '..empiezo de 1 otra vez.
Endif
Wend
'Ahora, muestro el valor de "i" en los leds:
PORTB = LookUp(0x01, 0x08, 0x09, 0x0a, 0x0b, 0x0e), i
WaitMs 5000 'espero 5 segundos, y vuelvo al programa ppal.
PORTB.7 = 1 ' prendo StandBy
Return
PD: aclaro, en la simulacion funciona, pero montado en el protoboard, cuando presiono el boton, al soltarlo, destella el numero y no espera los 5 segundos, no se si me explico. gracias de antemano
