Tengo un problema divertido con las interrupciones y las señales PWM que están provocando que se activen falsas interrupciones. Lo que está sucediendo exactamente es que estoy usando un codificador rotatorio en cuadratura de hardware rebotado. Los impulsos del codificador están conectados a interrupciones que luego puedo determinar la dirección de rotación. Rutina bastante estándar. Esto funciona bien por sí mismo.
Ahora,introduzcounasalidaPWMenmiproyecto.Enestecaso,digamosqueestoyatenuandounLED.Cargomiprogramayelledfuncionabien.Cuandogiroelcodificadorun"clic", parece que hay varias interrupciones que se activan en el codificador ... en el orden de aproximadamente 16 veces la cantidad esperada.
He simplificado el código hasta el final y he probado diferentes combinaciones de pines PWM e Interrupción y la respuesta es siempre la misma. Lo único extraño que observo es que si desconecto el cable de puente del pin PWM al LED, el problema desaparece y el codificador comienza a comportarse como debería. Estoy desconcertado y no puedo entender qué está pasando aquí.
¿Cómo puedo depurar o probar esto? ¿Qué pasa con el puente PWM, desenchufe e interrumpe el funcionamiento correctamente? ¿Cómo suena esto?
Además, he hecho esta pregunta en los foros de electrónica de Netduino y GHI y no he recibido ninguna solución.
Circuito actual:
Actualización: Basándome en la ayuda de los comentarios, he descubierto que hay un tipo de ruido inducido en los cables de puente PWM que afecta a los cables de puente conectados al codificador rotatorio. Cuando los cables de puente PWM están cerca de los cables de puente del codificador, existe la condición de problema. Cómo eliminar este ruido, aparte de mantener los cables de puente separados unos de otros. Además, ¿cómo eliminar este ruido en el caso de trazas de PCB?