我用的是msp4302132,只有一个XT,接了16M晶振,我把XT的8分频用作ACLK,把ACLK用于TA产生40K的PWM波形,同时把XT不分频用作MCLK,我把ACLK,MCLK,40K PWM的三个引脚都测量了,40K波形正确,ACLK端口无输出,MCLK端口输出1.1-1.2M的波形。然后我加入判断晶振起振的语句,结果发现晶振没起振,可是如果真是这样的化,我的定时器怎么可能产生准的40K PWM波啊。看MCLK的输出又好像的确晶振没有起振,为什么啊?
不加起振判断的始终分配语句语句如下:
//-------------基础时钟初始化--------------//
BCSCTL1 |= XT2OFF; // 2132芯片无XT2,不用
BCSCTL1 |= XTS; // XT1用于高速模式
// XT1外接16M,不分频
BCSCTL1 |= DIVA_3; // ACLK为XT1的8分频,2MHz
BCSCTL2 = SELM_3; // MCLK为XT1-16MHz晶振
BCSCTL3 = LFXT1S_2; // XT1范围选择,3-16M外接晶振
P2SEL |= BIT0; //开ACLK测量口
P2DIR |= BIT0;
P1SEL |= BIT4; //开MCLK测量口
P1DIR |= BIT4;
//-------------定时器初开始化-------------//
TA0CTL = TASSEL_1+MC_1; // TA时钟源为ACLK,增计数
CCTL0 = OUTMOD_4; // 输出翻转
CCR0= 25-1; // 25uS间隔
P1SEL |= BIT1; // P2.2用于信号输出
P1DIR |= BIT1;
建议:
1。示波器测量晶振频率,确认是否起振。
2。如果没有,审查晶振电路,系统复位电路是否正常。查看datasheet,看看匹配电容取值是否合适,另外,注意精度的选取。
3。查阅datasheet,关于晶振设置的相关部分,核对代码是否有编辑失误。
测晶振时可以用万用表,对地检测管脚!如果约为1/2系统电压就基本没有问题了!
解决了,程序代码调了下语句顺序,不过还是感谢你们!!!!!!!!