Hola, soy nuevo en el foro así que aprovecho para saludarlos a todos!
Antes de nada me gustaría pedir perdón si este tema no va aquí o he hecho algo mal. He estado leyendo todas las normas del foro para no meter la pata y creo que esto va aquí. Perdón a los moderadores en caso de que me haya equivocado. Por otra parte, como no he visto un apartado de presentaciones aprovecho este primer post para hacerlo.
Bueno, y ahora la pregunta que me lleva fastidiando varios días:
Hace poco monté un demodulador del cual estoy tomando la señal demodulada (digital) y la señal de detección de portadora (digital también, claro está). Para empezar a tratar la salida del demodulador estoy utilizando un PIC, en este caso para no complicarme la vida se trata de una placa Arduino que supongo que ya conocereis.
El caso es que la señal de detección de portadora la he conectado al puerto que activa las interrupciones (las cuales se activan cuando hay un cambio de estado: CHANGE) para que el microcontrolador lea cuando hay algo. El problema es que cuando se produce un cambio de estado se ejecutan las interrupciones varias veces (unas seis veces, depende del momento).
Como comprendereis, eso resulta un problema porque me impide saber cuando está emitiendo y cuando no y porque no me gusta que un circuito haga cosas raras (Si, soy así de pijo con las cosas).
He estado leyendo por Internet y he visto que esto se produce por culpa del overshooting de la señal y que puede ser arreglado mediante un filtro RC o esperando un tiempo cuando se active la primera interrupcción.
Bien, el filtro RC no termina de solucionar el problema: reduce a solo dos disparos. Pero de todos modos no me gusta demasiado esta idea porque supongo que retrasaría el tiempo de activación de esta señal...
La idea de dar un tiempo tras la primera interrupción: no funciona, supongo que debe ser porque se producen muy rápido... El código que metí era anular las interrupcciones y esperar... pero ni esperando un millón de años, así que supongo que se produce una interrupción antes de que le de tiempo al PIC a desactivarlas...
Y esto es todo lo que llevo por ahora. ¿Qué me recomendaríais hacer para solucionar esto?
¡Muchas gracias por adelantado y un saludo!
Antes de nada me gustaría pedir perdón si este tema no va aquí o he hecho algo mal. He estado leyendo todas las normas del foro para no meter la pata y creo que esto va aquí. Perdón a los moderadores en caso de que me haya equivocado. Por otra parte, como no he visto un apartado de presentaciones aprovecho este primer post para hacerlo.
Bueno, y ahora la pregunta que me lleva fastidiando varios días:
Hace poco monté un demodulador del cual estoy tomando la señal demodulada (digital) y la señal de detección de portadora (digital también, claro está). Para empezar a tratar la salida del demodulador estoy utilizando un PIC, en este caso para no complicarme la vida se trata de una placa Arduino que supongo que ya conocereis.
El caso es que la señal de detección de portadora la he conectado al puerto que activa las interrupciones (las cuales se activan cuando hay un cambio de estado: CHANGE) para que el microcontrolador lea cuando hay algo. El problema es que cuando se produce un cambio de estado se ejecutan las interrupciones varias veces (unas seis veces, depende del momento).
Como comprendereis, eso resulta un problema porque me impide saber cuando está emitiendo y cuando no y porque no me gusta que un circuito haga cosas raras (Si, soy así de pijo con las cosas).
He estado leyendo por Internet y he visto que esto se produce por culpa del overshooting de la señal y que puede ser arreglado mediante un filtro RC o esperando un tiempo cuando se active la primera interrupcción.
Bien, el filtro RC no termina de solucionar el problema: reduce a solo dos disparos. Pero de todos modos no me gusta demasiado esta idea porque supongo que retrasaría el tiempo de activación de esta señal...
La idea de dar un tiempo tras la primera interrupción: no funciona, supongo que debe ser porque se producen muy rápido... El código que metí era anular las interrupcciones y esperar... pero ni esperando un millón de años, así que supongo que se produce una interrupción antes de que le de tiempo al PIC a desactivarlas...
Y esto es todo lo que llevo por ahora. ¿Qué me recomendaríais hacer para solucionar esto?
¡Muchas gracias por adelantado y un saludo!