資源簡介
基于FPGA的等精度測量,測頻率、相位的精度很高

代碼片段和文件信息
#define?freq_test_h
#include
#include
#include
ulong?Frequency_test(?)?????????//頻率測量
{??
????spul?=0;??????//初始化
????clr??=0;
????cl???=0;
????sel_0=0;
????sel_1=0;
????sel_2=0;
????delay2(5);
????spul=1;
????clr=1;
????delay2(20);
????clr=0;
????cl?=1;????????//允許計數(shù)
????delay2(1000);??????//注意:門控計數(shù)時間,很關(guān)鍵
????cl=0;???????????????//關(guān)門控,在被測信號下個上升沿到來時停止計數(shù)
????while(start);
?
//????if(start==0)??
//????{??
????????
????????sel_0=1;????????//取標(biāo)準(zhǔn)計數(shù)值31~24位
????????sel_1=1;
????????sel_2=0;
????????data1=dat;
????????sel_0=0;
????????sel_1=1;
????????sel_2=0;
????????data1<<=8;
????????data1|=dat;
????????sel_0=1;
????????sel_1=0;
????????sel_2=0;
????????data1<<=8;
????????data1|=dat;
????????sel_0=0;????????//取標(biāo)準(zhǔn)計數(shù)值7~0位
????????sel_1=0;
????????sel_2=0;
????????data1<<=8;
????????data1|=dat;
????????sel_0=1;??????????//取被測信號計數(shù)值31~24位
????????sel_1=1;
????????sel_2=1;
????????data2=dat;?????
????????sel_0=0;
????????sel_1=1;
????????sel_2=1;
????????data2<<=8;
????????data2|=dat;
????????sel_0=1;??????
????????sel_1=0;
????????sel_2=1;
????????data2<<=8;
????????data2|=dat;
????????sel_0=0;???????//取被測信號計數(shù)值7~0位
????????sel_1=0;
????????sel_2=1;
????????data2<<=8;
????????data2|=dat;
//????}
????fx=((clk_ref*data2)/data1)*100;???//先擴(kuò)大100倍,注意:必須強(qiáng)制將此定位浮點型
????return(fx);
}
void?display_freq(?)
{
????fx_array[6]?=?fx/1000000+‘0‘;
????fx_array[5]?=?fx%1000000/100000+‘0‘;
????fx_array[4]?=?fx%100000/10000+‘0‘;
????fx_array[3]?=?fx%10000/1000+‘0‘;
????fx_array[2]?=?fx%1000/100+‘0‘;
????fx_array[1]?=?fx%100/10+‘0‘;
????fx_array[0]?=?fx%10+‘0‘;
????Lcd1602_Write_Data(24fx_array[6]);
????Lcd1602_Write_Data(25fx_array[5]);
????Lcd1602_Write_Data(26fx_array[4]);
????Lcd1602_Write_Data(27fx_array[3]);
????Lcd1602_Write_Data(28fx_array[2]);
????Lcd1602_Write_Data(29‘.‘);
????Lcd1602_Write_Data(210fx_array[1]);
????Lcd1602_Write_Data(211fx_array[0]);
????Lcd1602_Write_String(212“Hz“);
}
uint?Factor_test(?)?????????//相位測量
{?
????
????spul?=0;??????//初始化
????clr??=0;
????cl???=0;
????sel_0=0;
????sel_1=0;
????sel_2=0;
????delay2(1);
????cl=1;
????clr=1;
????delay2(10);
????clr=0;
????while(!eend);
//????if(eend==1)????????//高電平計數(shù)完成
//????{
????????sel_0=1;????????//取標(biāo)準(zhǔn)計數(shù)值31~24位
????????sel_1=1;
????????sel_2=0;
????????data3=dat;
????????sel_0=0;
????????sel_1=1;
????????sel_2=0;
????????data3<<=8;
????????data3|=dat;
????????sel_0=1;
????????sel_1=0;
????????sel_2=0;
????????data3<<=8;
????????data3|=dat;
????????sel_0=0;????????//取標(biāo)準(zhǔn)計數(shù)值7~0位
????????sel_1=0;
????????sel_2=0;
????????data3<<=8;
????????data3|=dat;
//????}
????delay2(50);
????spul=0;
????cl?=0;??????//允許計數(shù)?測量信號低電
????delay2(20);
????clr=1;?
????delay2(10);
????clr=0;
????while(!eend);
//????if(eend==1)?????????//測量低電平完成
//????{
????????sel_0=1;????????//取標(biāo)準(zhǔn)計數(shù)值31~24位
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????907??2008-06-03?08:09??頻率相位測試\頻率相位計(FPGA)\cexiang.qpf
?????文件?????????90??2010-11-27?15:38??頻率相位測試\頻率相位計(FPGA)\cexiang.qws
?????文件???????8667??2010-11-27?15:38??頻率相位測試\頻率相位計(FPGA)\etester.asm.rpt
?????文件???????2890??2008-05-20?14:18??頻率相位測試\頻率相位計(FPGA)\etester.bsf
?????文件????????388??2008-07-27?19:28??頻率相位測試\頻率相位計(FPGA)\etester.cdf
?????文件?????????26??2010-11-27?15:38??頻率相位測試\頻率相位計(FPGA)\etester.done
?????文件????????239??2008-06-02?20:00??頻率相位測試\頻率相位計(FPGA)\etester.dpf
?????文件?????108789??2010-11-27?15:37??頻率相位測試\頻率相位計(FPGA)\etester.fit.rpt
?????文件????????411??2010-11-27?15:37??頻率相位測試\頻率相位計(FPGA)\etester.fit.smsg
?????文件????????407??2010-11-27?15:37??頻率相位測試\頻率相位計(FPGA)\etester.fit.summary
?????文件???????6653??2010-11-27?15:38??頻率相位測試\頻率相位計(FPGA)\etester.flow.rpt
?????文件?????????21??2010-11-27?15:38??頻率相位測試\頻率相位計(FPGA)\etester.jdi
?????文件??????19387??2010-11-27?15:37??頻率相位測試\頻率相位計(FPGA)\etester.map.rpt
?????文件????????316??2010-11-27?15:37??頻率相位測試\頻率相位計(FPGA)\etester.map.summary
?????文件??????30972??2010-11-27?15:37??頻率相位測試\頻率相位計(FPGA)\etester.pin
?????文件?????131258??2010-11-27?15:38??頻率相位測試\頻率相位計(FPGA)\etester.pof
?????文件????????906??2008-05-17?21:57??頻率相位測試\頻率相位計(FPGA)\etester.qpf
?????文件???????2977??2010-11-27?15:38??頻率相位測試\頻率相位計(FPGA)\etester.qsf
?????文件????????152??2008-08-18?11:21??頻率相位測試\頻率相位計(FPGA)\etester.qws
?????文件????6520635??2008-05-20?15:16??頻率相位測試\頻率相位計(FPGA)\etester.sim.rpt
?????文件?????140505??2010-11-27?15:38??頻率相位測試\頻率相位計(FPGA)\etester.sof
?????文件?????127904??2010-11-27?15:38??頻率相位測試\頻率相位計(FPGA)\etester.tan.rpt
?????文件???????1898??2010-11-27?15:38??頻率相位測試\頻率相位計(FPGA)\etester.tan.summary
?????文件???????2741??2008-07-27?17:32??頻率相位測試\頻率相位計(FPGA)\etester.vhd
?????文件???????2741??2008-07-27?17:18??頻率相位測試\頻率相位計(FPGA)\etester.vhd.bak
?????文件??????42608??2010-11-27?15:37??頻率相位測試\頻率相位計(FPGA)\etester_assignment_defaults.qdf
?????文件??????99765??2008-07-27?18:07??頻率相位測試\頻率相位計(FPGA)\prev_cmp_etester.qmsg
?????文件???????1322??2008-05-05?16:20??頻率相位測試\頻率相位計(FPGA)\signalprobe_qsf.tcl
?????文件????????155??2008-05-05?16:59??頻率相位測試\頻率相位計(FPGA)\sopc_builder_log.txt
?????文件??????18805??2008-05-05?16:45??頻率相位測試\頻率相位計(FPGA)\stp1.stp
............此處省略107個文件信息
評論
共有 條評論