Cómo usar C para detectar cambios en el nivel del puerto IO de un microcontrolador
¡Esto es! ¿Quieres utilizar un temporizador o un retraso de software?
El software se retrasó en tan poco tiempo.
En primer lugar, necesita saber qué tan grande es el oscilador de cristal de su microcontrolador y luego a cuántos ciclos de máquina equivale el ciclador de instrucciones. Sólo así se puede calcular el tiempo de ejecución de una instrucción. En primer lugar, si lo escribe en C, debe averiguar cuál es la declaración ensambladora que compila. De lo contrario, será como un while(i!=0)i--; ¡esta declaración será compilada de manera diferente por diferentes compiladores! ! Algunas son muy concisas, como DZJN, y otras son muy largas.
Solo usa C para escribir el retraso, y debes usar un osciloscopio para ver cuál es.
unsigned int i
bit bandera = 0
mientras(1)
{
if( P00=1)
{
i=XXXX; //0.1ms
while(igt; 0)
{ p>
i--;
si(P00!=1)romper;
}
si(i==0)
{
i=YYY; //El nivel bajo debe aparecer en el momento YYY; de lo contrario, el 1 medido anteriormente no se contará.
while(igt; 0)
{
i--;
if(P00 = 0)
{
i=ZZZ; //0.23ms
while(igt; 0)
{
i--;
if(P00!=0)break; //Salir MIENTRAS
}
if(i==0) flag = 1;
}
}
}
}
XXXX, YYY, ZZZ depende de ti pensar en ello p>