есть датчик тока ACS712 и контроллер STM32. Стоит задача померить переменный ток. Делаю так, но сильно долго получается:
Код
RCC->APB1ENR |= 0x00000002;
TIM3->PSC = 35;
TIM3->EGR = 0x0001;
TIM3->CR1 |= 0x00000001; //включить таймер
ADC1->SQR3=0x0008;
TIM3->CNT=0;
while((TIM3->CNT<5550)==1) //один период
{
ADC1->CR2 |=0x00400000; //запуск преобразования
while(((ADC1->SR)&0x0002)==0);
rms1+=(ADC1->DR-3070)*(ADC1->DR-3070);
c1++; //счётчик числа преобразований
}
TIM3->CR1 &= ~0x00000001; //выключить таймер
TIM3->CNT=0;
curbuf1c+=sqrt(rms1/c1);
v1++;
c1=rms1=0;
if(v1>=500) //взять 500 периодов
{
current=curbuf1c/v1;
v1=curbuf1c=0;
}
можно ли как-то ускорить процесс измерения?