Hi neuralc,
It is very simple,
Consider your line frequency = 50.00 Hz
50.00 Hz = 20ms = 20000 us
for example if you grab sinewave sample @ 100us interval time you get 200 samples .
store in some buffer, your ADC is 8 bit so you need buffer of size
signed char adcbuf[200]
ok...
now do following
signed int rawrms ;
int rms ;
for( count = 0 ; count < 200 ; count++ )
{
rawrms += adcbuf[count] * adcbuf[count] ;
}
rms = rawrms / 200 ;
rms = sqrt(rms) ;
after squartrooting
you get actual rms of sinewave.
Regards.
Zastereo