-

Iniciado por xadap, 2 Septiembre 2005, 20:01 PM

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

xadap

-
-

yeikos

Expón algo del código para poder situarnos algo mejor...

Slasher-K

Deberías saber que el impulso viene de esos sensores, no entiendo cuál es el problema y para qué usas timers. Explicate un poco mejor.

Saludos.



A la reina de las profundidades que cuida los pasos de una sombra en la noche :*

xadap

-
#3
-

Slasher-K

Antes que todo, excelente proyecto :), mis felicitaciones.

Ahora con el código, podrías usar un timer y una variable estática. El siguiente ejemplo muestra como hacerlo:


Private Sub Timer1_Timer()
        Static iState%

  Select Case iState
    Case 0:
      'Haces que el robot realice una acción, en este caso sería que vaya hacia atrás.

    Case 1:
      'El Robot gira.

    Case Else
      iState = 0
       Timer1.Enabled = False 'Deshabilita el Timer para que sólo haga la secuencia una vez.
  End Select

  iState = iState + 1
End Sub


Saludos.



A la reina de las profundidades que cuida los pasos de una sombra en la noche :*

xadap

-
#5
-

Slasher-K

Primero te explico lo que hace. La variable estática sirve para mantener el mismo valor en cada intervalo de tiempo. Si no fuera estática cuando termina el procedimiento (End Sub) se borraría el valor.

Ahora con la cuestión del tiempo, el problema es que el Timer tiene un valor en la propiedad Interval predeterminado. Lo que podés hacer es crear un procedimiento para que espere un determinado tiempo, luego usarlo para esperar cuando el robot tiene que girar.

Por ejemplo:


Sub WaitSyn(Milliseconds As Long)
      Dim snTimer!

  snTimer = Timer

  'Entra al bucle y lo ejecuta hasta que se cumpla el tiempo especificado.
  '
  Do While (Timer - snTime) < (Milliseconds / 1000)
    DoEvents
  Loop
End Sub


Luego llamas a este procedimiento para que espere un determinado tiempo antes de que el robot gire:


Private Sub Timer1_Timer()
        Static iState%

  Select Case iState
    Case 0:
      'Haces que el robot realice una acción, en este caso sería que vaya hacia atrás.

    Case 1:
      'El Robot gira.

      'Espera tres segundos antes de hacer que el robot gire.
      '
      Call WaintSyn(3000)
    Case Else
      iState = 0
       Timer1.Enabled = False 'Deshabilita el Timer para que sólo haga la secuencia una vez.
  End Select

  iState = iState + 1
End Sub


Saludos.



A la reina de las profundidades que cuida los pasos de una sombra en la noche :*

Xpeed

#7
Do While (Timer - snTimer) < (Milliseconds / 1000)*

xD

un saludo.

xadap

-
#8
-

xadap

-
#9
-