XMega Get Clock Speed

1

Estoy haciendo un poco de depuración en mi proyecto y necesito comprobar si estoy configurando mi cristal externo correctamente. Tengo la capacidad de imprimir en un monitor en serie a través de USB, ¿Es posible recuperar la velocidad del reloj y si la CPU se está ejecutando fuera del reloj interno o de un cristal externo para poder imprimir eso?

    
pregunta bwoogie

2 respuestas

3

Puede medir la velocidad actual del reloj de la CPU utilizando el reloj de tiempo real interno controlado por el oscilador local de 32,76 kHz. No tengo un XMEGA a mano en un momento así que no puedo dar el procedimiento exacto, pero la idea general es configurar el RTC para medir un tiempo fijo (por ejemplo, 1 ms), y luego medir la cantidad de tics del reloj durante ese período de tiempo utilizando uno de los contadores / temporizadores de 16 bits. Si, por ejemplo, cuenta 8.044 tics durante un solo ciclo de RTC de 1 ms, entonces la velocidad del reloj de su CPU es 8044 / 1ms = ~ 8Mhz .

Puede verificar si se está quedando sin un reloj interno o externo mirando los bits de Selección del reloj del sistema (SCLKSEL) en el Registro de control del reloj (CTRL).

    
respondido por el bigjosh
2

Esto no requiere un alcance. Requiere un pin de E / S.

En función de lo que creas que es la frecuencia de cristal, escribe una rutina que crees que debería alternar un pin de E / S cada segundo (500 ms encendido, 500 ms apagado), luego conecta un LED al pin y cuenta el número de Pulsos en un minuto. Luego, dependiendo de si el número sube 60 o algo más, puede obtener una pista de lo que está pasando.

He hecho esto todo el tiempo para verificar la configuración de mi reloj.

    
respondido por el tcrosley

Lea otras preguntas en las etiquetas