Problema con el código pic24f

1

Estoy intentando escribir un código que espera que cambie un pin antes de continuar, pero no funciona. El código que ya tengo es:

do{
    LATBbits.LATB6=1;

}while(PORTBbits.RB14== 0);       

LATBbits.LATB6=0; ... d something else

El pin RB14 ya está configurado como entrada. Quiero que espere hasta que RB14 esté alto antes de continuar con la ejecución del código. Estoy usando un microcontrolador pic24f16ka102.

    
pregunta Zinedine

1 respuesta

2

Si desea configurar LATB6 y luego esperar hasta que RB14 esté alto antes de continuar, entonces no desea un bucle de "do-while". Te gustaría algo como esto:

LATBbits.LATB6 = 1;           //set LATB6
while(PORTBbits.RB14 == 0);   //wait until RB14 is HIGH
LATBbits.LATB6 = 0;           //execute other code

No entiendo bien por qué tienes LATBbits.LATB6 = 1 dentro de un bucle do-while. Mientras que en teoría hace lo mismo, solo desperdicia tiempo y recursos. Mantiene la configuración de LATB6 una y otra vez hasta que RB14 está en ALTO, pero no es necesario mantener la configuración de LATB6 en el mismo valor: mantiene su estado anterior.

Probablemente este no sea tu problema. Espero que su problema sea que no ha desactivado el ADC (convertidor analógico-digital). RB14 comparte un pin con AN10 (entrada analógica 10). Algunas fotos están predeterminadas en la entrada analógica, que no es lo que quieres. debe deshabilitar activamente el ADC para que RB14 sea una entrada digital.

    
respondido por el DerStrom8

Lea otras preguntas en las etiquetas