// RMS.c
#define NUM_ITERATIONS x // Debe reemplazar ‘x’ con un valor apropiado para su sistema
char externo sin firmar ReadADC (nulo); // Reemplace ReadADC () con su función de lectura ADC
extern void SystemSetup (vacío);
- ¿En qué se diferencian las características de los sistemas integrados de los sistemas de propósito general?
- ¿Qué conjunto de habilidades necesita un ingeniero de sistemas integrado?
- ¿Qué debo elegir a continuación, análisis de big data, diseño de sistemas integrados o IoT?
- ¿Cuál es la diferencia entre sistemas embebidos y VLSI?
- Cómo prepararse para la investigación en sistemas embebidos
vacío
main (int argc, char * argv [])
{
unsigned char CurrentADCReading;
unsigned char MaxVal = 0, MinVal = 0xFF;
flotador PeakToPeak;
flotador RMS;
Configuración del sistema(); // Configura tu sistema, incluida la inicialización del ADC.
mientras que (1)
{
CurrentADCReading = ReadADC (); // Reemplace ReadADC () con su función de lectura ADC
if (CurrentADCReading> MaxVal)
{
MaxVal = CurrentADCReading;
}
más si (CurrentADCReading <MinVal)
{
MinVal = CurrentADCReading;
}
recuento ++;
if (cuenta> = NUM_ITERATIONS)
{
descanso;
}
}
PeakToPeak = (flotante) (MaxVal – MinVal);
RMS = PeakToPeak * 0.707;
}
Realmente no he probado este código en nada (ni siquiera he intentado compilarlo), considérelo como una guía más que un código que puede copiar y pegar en su código y tener el trabajo tal como está. El punto importante aquí es que lo que está tratando de hacer es muy simple. Este código toma una cierta cantidad de lecturas de ADC (definidas por NUM_ITERATIONS) y captura los valores máximo y mínimo, que si se lee una onda sinusoidal y ha muestreado suficientes puntos, y con frecuencia suficiente (dependiendo de la frecuencia de onda sinusoidal y su frecuencia de muestreo, solo usted puede determinar esto), entonces los valores máximo y mínimo serán los valores de los “picos” más altos y más bajos de la onda sinusoidal, lo que dará como resultado una medición de amplitud “pico a pico”. El valor RMS puede derivarse de un valor pico a pico simplemente multiplicando el valor pico a pico por 0.707. ¡Ahí tienes!
Feliz codificación !!! 🙂