Hola, primero les muestro lo que tengo y luego lo explico:
	
	
	
		
Inicio llama a dos rutinas que andan perfecto.
El problema es que cuando activo Avance o Reversa (el que sea primero) se queda pegado.
Por más que esté todo en 0 o cambie de switch, sigue en la rutina que estaba.
				
			
		Código:
	
	Define Osc 4    
    Symbol P1 = PORTB.1
    Symbol P2 = PORTB.2
    Symbol P3 = PORTB.3
    Symbol P4 = PORTB.4
    Cambios   Var Byte
        Cambios   = 0
    Direccion Var Byte
        Direccion = 0
    TrisC = $00
    Low  PortC.0
    Low  PortC.1
    Low  PortC.2
    Low  PortC.3
    Low  PortC.4
    Low  PortC.5
    High PortC.6
    Low  PortC.7
Inicio:
    If P3 = 1 Then Call Avance
    If P4 = 1 Then Call Reversa
    Goto Inicio
Avance:
    If p1 = 1 And Cambios < 9 Then Call Adelante
    If p2 = 1 And cambios > 0 Then Call Atras
    Goto Avance
	El problema es que cuando activo Avance o Reversa (el que sea primero) se queda pegado.
Por más que esté todo en 0 o cambie de switch, sigue en la rutina que estaba.
			
				Última edición: