Estoy usando un dsPIC33F (Microchip) para muestrear una señal de 555 temporizadores. He intentado formas de señal cuadradas, triangulares y "sinusoidales", pero siempre tengo el mismo problema: el ADC muestrea la forma de onda correctamente, pero el resultado es siempre la mitad de la frecuencia esperada.
Por ejemplo, mi entrada es 440Hz, y cuando grafico lo que el ADC escribe en el búfer, obtengo:
Sinlaslíneases:
En el osciloscopio lo leí como 440Hz. Mi frecuencia de muestreo es de 8 kHz (que verifiqué con el osciloscopio al alternar un pin), y al cambiarlo, los valores muestreados cambian para reflejar eso, así que estoy casi seguro de que estoy usando el temporizador correcto para activar el ADC. Como cada punto representa 1/8000 = 0,000125s, los gráficos anteriores muestran una forma de onda con un período de 36 * .000125 = 0.0045, o 222Hz.
Siento que el tiempo de conversión no debería tener ningún efecto, siempre que sea más corto que 0.000125s. Estoy seguro de que lo es, y he intentado diferentes tiempos de conversión sin ningún cambio. Sé que no es la forma más eficiente de hacer las cosas, pero para comenzar, también convierto una muestra a la vez antes de activar una interrupción y escribir en el búfer. No estoy seguro de si eso importaría.
Si alguien tiene alguna idea, te lo agradecería.