我用下面的程序來配置我的MSP430的時鐘(MSP430G2231)微控制器後:MSP430的時鐘問題重置
void configure_clock(void) {
if (CALBC1_1MHZ == 0xFF || CALDCO_1MHZ == 0xFF) { // Checks the clock constants
while(TRUE); // If callibration constants are erased, TRAP!
}
BCSCTL1 |= CALBC1_1MHZ; // Sets DCO range
DCOCTL |= CALDCO_1MHZ; // Set DCO step and modulation
BCSCTL1 &= ~(XTS | XT2OFF); // Disables XT2 and sets low frequency mode
BCSCTL3 |= (LFXT1S_0 | XCAP_3); // Selects LFXT1 crystal with 12,5pF
do {
IFG1 &= ~OFIFG;
__delay_cycles(1000);
} while (IFG1 & OFIFG); // Waits until crystal stabilizes
BCSCTL2 |= (SELM_2 | SELS); // Selects SMCLK and MCLK from LFXT1CLK
}
的問題是,在第一次運行代碼(只是單片機上電後)一切按預期工作,我得到32768 kHz時鐘。但是,如果我按下電路板上的重置按鈕(MSP430 Launchpad),時鐘似乎不能正常工作,代碼執行速度會很慢(如10次左右)。關於時鐘配置的任何想法?
謝謝!
佩爾
謝謝,我會嘗試你的建議,並讓你知道他們是否工作... –