文档介绍:MSP430F5529 测量频率----- 测频法信号变换电路过零比较器,lm393输出上拉电阻,两电阻分压程序#include<>#include""//测频法,上限 1Mhz//看门狗定时 1s,开门狗中断处理程序开启捕获器,捕获 1s中所有的上升脉冲,脉冲个数即为频率/*优化的反向可以将开门够定时 1S使用定时器去定时 */longfre=0;charbuf[60]="\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));}voidsend_string(char*s){while(*s!='\0'){send_c