¿Cómo controlar la frecuencia de Arduino?

6

Estoy portando un código de c en la plataforma Arduino (estoy usando un Arduino Leonardo ). I wanto para controlar a distancia una cámara con un IR LED. La información sobre el control remoto desea emular aquí . El código, aquí .

La frecuencia de Ráfaga para controlar el IR LED es de 32700 Hz, y estoy tratando de hacer que Arduino se ejecute en esta frecuencia.

No tengo experiencia en ingeniería, así que no sé qué hacer. Creo que necesito algún tipo de retraso para hacer que Arduino funcione a esa frecuencia, hay una nota sobre la frecuencia en el segundo enlace que di:

  

Antes de la compilación, la frecuencia del reloj del microcontrolador debe ser   especificado [...]

     

En caso de que la luz IR sea visible y la cámara no responda: [...]   Compruebe el tiempo del programa. Las rutinas _delay_us () en el código necesitan una   configuración adecuada de la variable F_CPU.

EDITAR: estoy publicando porque he probado el código en aquí pero parece ser un problema de comunicación con la señal IR emitida: no todas las veces que el LED parpadea (he probado con una cámara de teléfono móvil y parpadea en momentos específicos) la cámara está disparando.

    
pregunta nkint

1 respuesta

4

El código en su ejemplo está escrito para una CPU con una velocidad de reloj de 7.9MHz:

#define F_CPU 7900000 // clock frequency, set according to clock used!

Mientras que Arduino corre a 16MHz. Dado que todos los retrasos en el código _delay_ms(HPERIOD); son en milisegundos, debería estar bien eliminando esa primera línea F_CPU de la fuente y recompilándola. Arduino utiliza automáticamente la frecuencia correcta para su placa (16MHz).

    
respondido por el jippie

Lea otras preguntas en las etiquetas