文档介绍:MSP430F5529 测量频率----- 测周法信号变换电路过零比较器,lm393输出上拉电阻,两电阻分压程序#include<>#include""#include""//测周法,在捕获过程中,定时溢出不能被检测出,选择时钟频率为低频时能测出低频,频率高能测出频率高的部分/***/longlongstart=0;//longlongintstop=0;doublefre=;unsignedchari=0;unsignedcharover=0;voidSetVcoreUp(unsignedintlevel){OpenPMMregistersforwritePMMCTL0_H=PMMPW_H;SetSVS/SVMhighsidenewlevelSVSMHCTL=SVSHE+SVSHRVL0*level+SVMHE+SVSMHRRL0*level;//SetSVMlowsidetonewlevelSVSMLCTL=SVSLE+SVMLE+SVSMLRRL0*level;//WaittillSVMissettledwhile((PMMIFG&SVSMLDL YIFG)==0);//ClearalreadysetflagsPMMIFG&=~(SVMLVLRIFG+SVMLIFG);//SetVCoretonewlevelPMMCTL0_L=PMMCOREV0*level;Waittillnewlevelreachedif((PMMIFG&SVMLIFG))while((PMMIFG&SVMLVLRIFG)==0);SetSVS/essPMMCTL0_H=0x00;}void init_clock(){SetVcoreUp(0x01);SetVcoreUp(0x02);SetVcoreUp(0x03);UCSCTL3=SELREF_2;UCSCTL4|=SELA_2;//SetDCOFLLreference=REFO//SetACLK=REFO__bis_SR_register(SCG0);UCSCTL0=0x0000;UCSCTL1=DCORSEL_7;UCSCTL2=FLLD_0+609;__bic_SR_register(SCG0);__delay_cycles(782000);//DisabletheFLLcontrolloop//SetlowestpossibleDCOx,MODx//SelectDCOrange50MHzoperation//ultiplierfor25MHz//(N+1)*FLLRef=Fdco//(762+1)*32768=25MHz//SetFLLDiv=fDCOCLK/2//EnabletheFLLcontrolloopdo{UCSCTL7&=~(XT2OFFG+XT1LFOFFG+DCOFFG);SFRIFG1&=~OFIFG;}while(SFRIFG1&OFIFG);//ClearXT2,XT1,DCOfaultflags//Clearfaultflags//Testoscillatorfaultflag}voidsend_char(charsc){UCA0TXBUF=sc;while(!(UCA0IFG&UCTXIFG));}voidsen