急求????MSP430F149为何使用8M的晶振,却分频得不到2M,4M的PWM波呢 5

使用程序如下voidint_clk(){uchari;BCSCTL1&=~XT2OFF;//打开XT振荡器BCSCTL2|=SELS;//MCLK为8Mhz,SMCLK为... 使用程序如下
void int_clk()
{
uchar i;
BCSCTL1&=~XT2OFF; //打开XT振荡器
BCSCTL2|=SELS; //MCLK为8Mhz,SMCLK为8Mhz

do
{
IFG1=~OFIFG; //清除振荡错误标志
for(i=0;i<100;i++)
_NOP(); //延时
}
while((IFG1&OFIFG)!=0); //如果标志为1,则继续循环等待
IFG1&=~OFIFG;
}
void int_pwm()
{
P1SEL|=BIT2+BIT3; //选择P1.2-TA1,P1.3-TA2 为PWm输出 第二功能
P1DIR|=BIT2+BIT3;
TACCR0=800; //PWM信号频率10Khz
TACCR1=400; //占空比1:1
TACCTL1=OUTMOD_7;
TACCR2=400;
TACCTL2=OUTMOD_7;
TACTL|=TASSEL1+ID1+ID0+MC0; //选择SMCLK增加模式
}
void main()
{
WDTCTL=WDTPW+WDTHOLD;

int_clk();
int_pwm();
while(1);
}
为何就是得不到M级的pwm波呢,除此之外,如看比人说的使用DCOCTL修改DCO的时候出现未定义的情况,求各位大神指导
展开
 我来答
Vikjor8054kiki
2013-04-02 · TA获得超过2796个赞
知道小有建树答主
回答量:826
采纳率:71%
帮助的人:325万
展开全部
我看不懂这种程序。
如果原始信号是8M,想要选择性的得到4M和2M,建议使用分频电路,分频至4M和2M,然后设计选择电路选择通道。
直接编程的话很难做到吧。
yanxiaojing00
2013-04-03 · 超过40用户采纳过TA的回答
知道小有建树答主
回答量:169
采纳率:100%
帮助的人:98.4万
展开全部
TACCR0=800; //PWM信号频率10Khz
TACCR1=400; //占空比1:1

改为
TACCR0=3; //PWM信号频率2Mhz
TACCR1=2; //占空比1:1

TACCR0=1; //PWM信号频率4Mhz
TACCR1=1; //占空比1:1

应该就是了,我没试过会出现什么情况
使用DCOCTL修改DCO的时候出现未定义的情况,肯定就是你寄存器符号写的不对呗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式