|
MCU的討論區怎麼都沒有什麼人在討論或是詢問有關TI MSP 430的文章啊!2 @) c/ Y: A# k0 |
3 ~. w7 l5 Q* X% t
想要詢問如何讓IO可以震出4MHZ
' [: f' m- a/ a
5 o$ `8 T2 x7 ?. z4 F) x$ \請問一下怎樣設定才能讓IO拉出4MHZ的頻率呢' @$ }. d$ e* @) d4 t
以下是我得程式 他最多只到665k: R2 J( ?6 k) F
void main(void)
0 z; L7 O8 `, n{
7 d$ \0 }1 _& A8 @3 P ~& _WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer9 ^ G* `, l) v' ] w5 C
P1DIR |= 0x01; // Set P1.0 to output direction
, P8 \2 ]& W. `- E/ CP5DIR |= 0x70; // P5.6,5,4 outputs; S/ x+ A! J! G
P5SEL |= 0x70; // P5.6,5,5 options
( Q2 u \5 }8 C v2 u0 o( Uunsigned int i;
" Y$ |3 |9 `, D! ^) mBCSCTL1 &= ~XT2OFF;
8 H$ t2 b( d2 ^ ]//XT2震盪器開啟
4 M# [& ^+ R/ A. i$ G//LFTX1工作在低頻模式! t* ?$ o$ E0 R3 \
//ACLK的分頻因子為1
* |' A% a- K M8 r; X
4 Q9 U( g5 N Z9 e& G1 S. zdo 0 k" m( u4 d- Y6 [# ]" J( z8 m" @
{
# Q- j3 C6 k7 w g3 ]9 }+ j// 清除OSCFault標誌: D) a( P* u3 Z$ \; H" X
IFG1 &= ~OFIFG; ! U' Y: \( q; e7 i6 F
for (i = 0x20; i > 0; i--);
; M5 W* j: [* y, s- y}; J9 E7 l' o* s0 @- \! u
while ((IFG1 & OFIFG) == OFIFG);// 如果OSCFault =1
* B% ^2 M! T" s
, H$ t g1 J2 @- ]" O//將寄存器的內容清零
$ J$ [1 q; h" J, _; PBCSCTL2 = 0X00; 1 {# H# {6 ?. T1 d1 ~; [) J
//MCLK的時鐘源為TX2CLK,分頻因子為1( n6 y8 I8 p1 V/ B; }
BCSCTL2 += SELM1;
, _) t8 t* G: P7 R. R//SMCLK的時鐘源為TX2CLK,分頻因子為1) [3 c! I$ b& b9 _7 v
BCSCTL2 += SELS; . k, q+ a. t* e
for (;;)+ m+ z- u5 c) f% S u8 A' n& x3 ?" w, f
{) Y7 F. ?" }# L/ h
volatile unsigned int i;7 A1 {. G. K& e0 Q
# k" y! s3 n" E
P1OUT ^= 0x01; // Toggle P1.0 using exclusive-OR
8 o$ P, |$ x \3 A
) N- t {2 ^% F
: ~6 z6 |3 k7 }% X. J}
' t- u* _+ Q A} |
|