使用此程序后是这个结果:ACLK = REFO = 32.768kHz, MCLK = SMCLK = Default 1MHz
include <msp430f5529.h>
void main(void)
{
volatile unsigned int i;
WDTCTL = WDTPW+WDTHOLD; // Stop WDT
P1DIR |= BIT1; // P1.1 output
P1DIR |= BIT0; // ACLK set out to pins
P1SEL |= BIT0;
P2DIR |= BIT2; // SMCLK set out to pins
P2SEL |= BIT2;
P7DIR |= BIT7; // MCLK set out to pins
P7SEL |= BIT7;
while(1)
{
P1OUT ^= BIT1;
__delay_cycles(60000); // Delay
}
}
但问题是为什么会有这个结果呢?ACLK = REFO = 32.768kHz, MCLK = SMCLK = Default 1MHz
(字节限制,只好分开提问了)
此帖出自
小平头技术问答
您好,
PUC后,XT1是disable的,直到XT1的两个引脚被配置为XT1模式后才enable,所以需要有以下的程序配置:
// Set up XT1
P5SEL |= BIT4+BIT5; // Select XT1
UCSCTL6 &= ~(XT1OFF); // XT1 On
UCSCTL6 |= XCAP_3; // Internal load cap
默认情况下,XT1CLK作为FLL参考时钟,即FLLREFCLK。但是MSP430的UCS中有fail-safe机制,即当外部晶体出错的时候,那么自动切换到内部的振荡器,比如REFOCLK。在上电后,会有一个XT1LFOFFG,所以FLLREFCLK就自动切换到REFOCLK来驱动。
默认情况下,n=1,N=31,FLLREFCLK=REFOCLK=32.768KHz,DCOCLKDIV 所以能够计算出大概是1048576Hz
“XIN和XOUT引脚被设置为通用IO时,XT1保持禁能直到IO口置为XT1操作模式。”这句话翻译是有问题的!加了一个“时”字,让人完全糊涂了。所以建议您参考英文的User's Guide。
希望对您有所帮助!
一周热门 更多>