Al programar con 51, ¿puedo apagar la interrupción actual y encender o apagar el temporizador en la función de interrupción?
1. En la rutina del servicio de interrupción, por supuesto, es posible desactivar el indicador de habilitación de interrupción (es solo que la interrupción se desactiva temporalmente. Si la interrupción no está habilitada en otros programas, el la rutina de servicio de interrupción no se ejecutará nuevamente), también puede iniciar y detener el temporizador.
Después de leer tu pregunta, creo que tu petición es completamente realizable, pero debes tener más cuidado al programar y aclarar la lógica.
Solía hacer un taxímetro y los datos de kilometraje provenían de una interrupción externa, pero cuando el taxi estaba vacío (es decir, cuando no había pasajeros), desactivé esta interrupción. los datos de kilometraje El sensor aún está llegando al puerto de interrupción y el sistema no responderá de ninguna manera.
2. El posicionamiento del sonido es muy sencillo en teoría, utilizando dos líneas y un punto. Use un motor paso a paso desacelerado (con micrófono), luego gírelo primero y use un bucle de bloqueo de fase, como LM567, para generar un pulso después de recibir la señal. En este momento, el motor paso a paso se detiene y se mide el ángulo de rotación (lo que significa que el sonido está en esa línea recta). Luego camina una cierta distancia y vuelve a medir, y se obtiene otra línea recta. Las líneas son la fuente de sonido, similar al posicionamiento de radio en los primeros años y al posicionamiento de WeChat ahora.