MSP430方波发生器

最近在研究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做也有这个问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值