大家好,这两天想用430产生兆赫兹以上的PWM信号,编程时选择了定时器时钟源为SMCLK,然后用XT2为他提供时钟信号,书上说XT2的频率范围是400KHZ-16MHZ,但是我没有找到怎么设置XT2频率的语句,然后就按书上的例子编了一下,发现分频系数为1也就是直通的时候,将CCR0=2,CCR1设为1进而产生占空比是1/2的方波,输出的方波频率只有200KHZ左右,也就意味着XT2的频率是400KHZ,为什么XT2无法输出更高频率的时钟信号了呢?是因为我没有焊接外部晶振使其只能发送最低频率的信号还是因为我程序编得有问题?请大神们看一下,程序如下:
#include <msp430.h>
int main(void)
{
WDTCTL = WDTPW | WDTHOLD; // stop watchdog timer
BCSCTL2 |=SELS;//SMCLK=XT2
BCSCTL2=DIVS0;//1分频
P1SEL |=BIT2;
P2SEL|=BIT4;
P1DIR|=BIT2;
P2DIR|=BIT4;
CCR0=2;//PWM周期
TA1CCR0=2;//PWM周期
CCR1=1;//占空比1/2
TA1CCR2=1;//占空比1/2
CCTL1=OUTMOD_7;
TA1CCTL2=OUTMOD_7;
TACTL=TASSEL_2+MC_1;//定时器A时钟为SMCLK,增计数模式
TA1CTL=TASSEL_2+MC_1;
_BIS_SR(LPM0_bits);
return 0;
}
最后用示波器测出来方波周期191KHZ
我应该怎么改才能成功输出兆赫兹的方波啊?
谢谢大家!
Amy Luo:
您好,
MSP430G2553属于微控制器 (MCU)版块,请在微控制器 (MCU)版块发帖咨询负责微控制器的工程师。