midiendo el uso de la CPU [cerrado]

0

Tengo varias interrupciones que funcionan y quiero calcular el tiempo de inactividad que está haciendo la CPU, y también calcular su uso de la CPU.

así que tengo un bucle while mientras(); y las interrupciones están funcionando. Cómo calculo 1. el tiempo de inactividad 2. el uso de la CPU de las interrupciones.

Tengo un alcance y puedo desactivar configurar cambiar un pin

    
pregunta Andre

1 respuesta

3

Establezca el pin alto en la parte superior de su ISR y luego vuelva a colocarlo al final del ISR.

Esto le daría efectivamente una señal modulada en ancho de pulso (PWM) que puede suavizar con un filtro RC (o un filtro basado en opamp, si se siente aventurero) y leer el voltaje usando su alcance.

Si desea hacer esto en su proyecto de forma nativa, puede usar un ADC en lugar del alcance. Si su CPU tiene un ADC incorporado, puede usarlo para medir su propio uso de la CPU, ya que el condensador mantendrá la carga durante el tiempo suficiente para realizar la medición fuera del ISR. Si no, utilice un ADC externo en un bus SPI o equivalente.

Cuando el pin esté alto (en el ISR), la tapa se cargará, y después de dejar el ISR (tiempo de inactividad) se descargará nuevamente. El voltaje medido por el Alcance / ADC será una fracción de VCC y, por casualidad, estará cerca de la fracción del tiempo pasado en el ISR.

La elección de valores razonables para sus componentes de filtrado le permitirá integrar el uso de su CPU en períodos de tiempo más largos o más cortos (milisegundos o minutos, según sus necesidades).

    
respondido por el Wossname

Lea otras preguntas en las etiquetas