Girar motorreductor cada 90 grados

Hola amigos
Tengo que realizar un proyecto en el que tengo que hacer girar un motorreductor cada 1/4 de giro, lo estoy haciendo con un circulo con divisiones ubicadas cada cuarto de giro que hacen que se active un sensor final de carrera. ya logre esa parte,
ahora en la programación el profesor me pidió lo siguiente :
1) Si en sensor esta desactivado, el motor debe girar hasta que este se active,parar, luego iniciar un bucle de giros de 90 grados con un retardo de tiempo
2) si el sensor esta activado, directamente se inicia el bucle de giros

por ahora esto es lo que tengo de codigo en Pic c compiler :
void main()
{
SET_TRIS_A(0xFF);
SET_TRIS_B(0X00);

while (true)
{
OUTPUT_HIGH(PIN_B0); //motor enciende
delay_ms(100); //espero un tiempo
}IF (input(PIN_A2)==1) //si el sensor se activa, para
OUTPUT_LOW(PIN_B0);
delay_ms(2000); //espero 2 segundos antes del nuevo giro
}

El programa falla en que cuando detecta la activación del sensor no para inmediatamente
Se que es un programa fácil pero , aun soy un novato en esto de los pics y el lenguaje de programación.

Agradezco sus sugerencias o ayudas
Saludos ...
 
En ese programa las instrucciones para: "IF (input(PIN_A2)==1)" están fuera del bucle While.
Eso hará que únicamente se ejecuten una sola vez al inicio del programa.

Posiblemente te equivocaste al colocar el código, pero para lo que quieres hacer, te recomiendo el uso de interrupciones.

El programa falla en que cuando detecta la activación del sensor no para inmediatamente.
Es normal que la detección no sea instantánea porque tienes un retardo de 100 ms ejecutándose constantemente.
 
Atrás
Arriba