×
单片机 > 单片机程序设计 > 详情

MSP430方波发生器

发布时间:2020-08-31 发布时间:
|

最近在研究MSP430,有产生方波的需要,于是尝试用定时器写了两个方波发生的函数,一个可以产生几十K的方波,一个可以产生几百K的方波,感觉还比较有用,特来分享。


频率与CCR0计算式:2*CCR0/TimerAFrequency=1/F ---> CCR0=TimerAFrequency/(2*F)


void low_square_Generator(int frequency)

//几十KHZ方波产生器

{

  P1DIR |= 0x02;          //P1.1的第二功能                  

  P1SEL |= 0x02;                            

  CCTL0=OUTMOD_4;                       //翻转模式

 

  CCR0=(int)(16384.0/frequency); 

  TACTL|=TASSEL_1+MC_1; //32768的ACLK

  _BIS_SR(LPM3_bits);

  

}

void high_square_Generator(float Kfrequency)

//几百KHZ方波产生器

{ float temp; P1DIR |= 0x02;  //P1.1的第二功能 

P1SEL |= 0x02; CCTL0=OUTMOD_4; //翻转模式 

temp=4000000.0/Kfrequency; 

CCR0=(int)temp; //8MHZ的MCLK 

TACTL|=TASSEL_2+MC_1; 

_BIS_SR(LPM3_bits); 

}


注意:高频在高于500KHZ时方波波形有点渣,上升沿有尖峰。后来用FPGA做也有这个问题



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
STM32中断向量表的位置.重定向