Por favor, deme alguna orientación de un experto en programación de microcontroladores ~~ Lo siguiente es parte del programa. Utiliza un módulo de sensor infrarrojo. Este módulo genera un nivel bajo cuando encuentra un obstáculo y un nivel alto si no lo hay. obstáculo.
Personalmente, creo que el encendido de infrarrojos debe colocarse fuera del tiempo; solo es necesario encenderlo una vez y estará bien.
En segundo lugar, en su función de interrupción, la interrupción debe activarse en la declaración del valor inicial. Finalmente, por supuesto, su valor inicial es 0 porque la inicialización también es 0, no sé si se puede hacer sin asignarlo. ¡Pero en teoría, el valor inicial se asigna primero y se inicia el cronometraje!
Sugerencias de soluciones personales:
De hecho, el propósito de su solución es calcular el tiempo de bajo nivel. ¡Esto es fácil de manejar! En TMOD, hay un bit GATE, que generalmente no usamos. Cuando GATE es 1, el pin INT0 o INT1 está en nivel alto y TR0/1 es 1 para comenzar a contar, solo necesitamos agregar un inverso al módulo de infrarrojos; dispositivo de fase de salida;