سلام.
من یه اسیلو سکوپ با LPC1768 طراحی کردم می خوام بصورت نرم افزاری فرکانس ،اندازه گیری کنم ولی مشکلی که هست فرکانس کمتر 50 کیوهرتز دقیق نشون میده ولی فرکانس بالا رو پرش دره یا TIM/DIV عوض می کنم با مشکل برش فرکانس مواجه میشم.به نظر شما مشکل از کجاست ؟ وچه روش بهینه برای محاسبه فرکانس پیشنهاد می کنید؟ اینم قسمت محاسبه فر کانس(متغییرVPP ولتاژ پیک تو پیک)
اینم عکس سیگنالی مورد پردازش:
من یه اسیلو سکوپ با LPC1768 طراحی کردم می خوام بصورت نرم افزاری فرکانس ،اندازه گیری کنم ولی مشکلی که هست فرکانس کمتر 50 کیوهرتز دقیق نشون میده ولی فرکانس بالا رو پرش دره یا TIM/DIV عوض می کنم با مشکل برش فرکانس مواجه میشم.به نظر شما مشکل از کجاست ؟ وچه روش بهینه برای محاسبه فرکانس پیشنهاد می کنید؟ اینم قسمت محاسبه فر کانس(متغییرVPP ولتاژ پیک تو پیک)
void proce_frequnce(void){
char i,st=0,ex;
short step[2];
float f1;
for(i=0;i<2;i++)
{
for(a=0;a<320;a++)
{
f1=(2047-adc_v[i][a])*4.885197851e-4;
f1-=0.06;
f1/=divider;
//------STAT MACHIN-----------------
if (f1<(vpp/2) & st==0){
st=1;
}
else if(f1>=(vpp/2) & st==1){
step[0]=a+(i*320);
st=2;
}
else if(f1<(vpp/2) & st==2){
st=3;
}
else if(f1>=(vpp/2) & st==3){
step[1]=(a+(i*320))-step[0];
st=4;
ex=1;
}
}
}
ex=0;
f1=TIM_DIV[r[2]]/20;
fre=1/((step[1])*f1);
}
اینم عکس سیگنالی مورد پردازش:

دیدگاه