MSP430FR5739的32768HZ晶振不起振,不知什么原因,求指导。
匹配电容用的两个18pf的电容(没找到12pf)的。
#include "msp430fr5739.h"
/*************************************************
**函数(模块)名称: main(void)
**功能: 初始化系统
**输入参数: 无
**输出参数: 无
**函数返回值说明: 无
**使用的资源
**其它说明:
*************************************************/
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // 关闭看门狗
PJSEL0|=BIT4;//配置PJ.4,PJ.5;
CSCTL0 = CSKEY;
CSCTL1 |= DCOFSEL0 + DCOFSEL1;
CSCTL2 = SELA_0 + SELS_0 + SELM_0; // MCLK = SMCLK = ACLK
CSCTL3 = DIVA_0 + DIVS_0 + DIVM_0;
CSCTL4 &= ~XT1OFF;
CSCTL5&=~XT1OFFG;
P1DIR |= BIT2+BIT3+BIT0;
P1SEL0 |= BIT2+BIT3; // P1.2 P1.3选择第二功能
TA1CCR0 = 100-1; // PWM周期为32768/100
TA1CCTL1 = OUTMOD_7; // CCR1 复位置位模式
TA1CCR1 = 75; // CCR1 占空比75%
TA1CCTL2 = OUTMOD_7; // CCR2 复位置位模式
TA1CCR2 = 25; // CCR2 占空比25%
TA1CTL = TASSEL_2 + MC_1 + TACLR; // SMCLK, 增计数,清除计数值
while(1)
{
LPM3;
}
}
测得的P1.2,1.3的方波周期在100HZ左右,应该是晶振没起振,求高手帮忙解决。。。
此帖出自
小平头技术问答
- PJSEL0 |= BIT4 + BIT5; // + BIT2;
- CSCTL0_H = 0xA5; // Unlock register
- CSCTL1 |= DCOFSEL0 + DCOFSEL1; // Set max. DCO setting
- CSCTL2 = SELA_0 + SELS_3 + SELM_3; //SELA_1 + SELS_3 + SELM_3; // set ACLK = vlo; MCLK = DCO
- CSCTL3 = DIVA_0 + DIVS_0 + DIVM_0; // set all dividers
- // Lock Register
- CSCTL4 |= XT1DRIVE_0;
- CSCTL4 &= ~XT1OFF;
- do {
- CSCTL5 &= ~XT1OFFG;
- // Clear XT1 fault flag
- SFRIFG1 &= ~OFIFG;
- } while (SFRIFG1 & OFIFG); // Test oscillator fault flag
- CSCTL0_H = 0x01;
- // Turn off temp.
- REFCTL0 |= REFTCOFF;
- REFCTL0 &= ~REFON;
复制代码仅供参考一周热门 更多>