Частота будет бегать не существенно, на единицы Гц на протяжении секунды. То есть, думаю усреднив значение замеров продолжительности нескольких периодов можно вычислить значение частоты тока до единицы Гц.
В предыдущем амперметре так считал:
Код:char c; unsigned long s; unsigned long vol2; s = 0; medium_adc = MCP3208_GetADC( 2 ); // получить значение adc нуля амплитуды // выборка ранее произведенных 64 отсчетов АЦП for( c = 0; c < 64; c++ ) { if( adc_vol[c] >= medium_adc ) vol2 = adc_vol[c] - medium_adc; else vol2 = medium_adc - adc_vol[c]; s = s + (vol2 * vol2); // накопление результата, квадратов 64 отсчетов } s = s >> 6; // 1/64; среднеквадратичное return sqrt( s );