|
MCU的討論區怎麼都沒有什麼人在討論或是詢問有關TI MSP 430的文章啊! G1 L& P; E6 Q- T) z
, Q* {( C' c* y/ W9 i
想要詢問如何讓IO可以震出4MHZ+ v. k; H! x1 i' W5 [% T
0 a+ u* x) h* s5 `0 S% Q9 O請問一下怎樣設定才能讓IO拉出4MHZ的頻率呢
6 v5 }* D: w+ I& h& p5 C, J4 f以下是我得程式 他最多只到665k. ]5 b3 K* d7 M7 ^0 B( W
void main(void)* J" ~6 |! u. w2 J, x# _/ _: e
{
+ Y- |+ E7 d7 z/ K! h9 ^WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer+ M q; ]( f5 d- T3 z, ~
P1DIR |= 0x01; // Set P1.0 to output direction) @& H! |# r% `# Q" j/ H
P5DIR |= 0x70; // P5.6,5,4 outputs/ y% R+ s- k2 e0 g6 n
P5SEL |= 0x70; // P5.6,5,5 options
+ O( v% Y) t4 Lunsigned int i;1 |" `6 p0 \. D! d
BCSCTL1 &= ~XT2OFF; 2 b% y) ]0 ^" q0 v) f+ x
//XT2震盪器開啟! v, l8 ?' D" f; A! S
//LFTX1工作在低頻模式
: M* F: L/ Y; j//ACLK的分頻因子為1' M" b. z/ r4 z/ ?
' E8 s0 a5 G+ M/ ~. Odo ; E1 h, u3 {% `* Z+ K
{2 D2 o( n8 `& {
// 清除OSCFault標誌
1 |9 i% y$ K: M3 N! WIFG1 &= ~OFIFG;
7 z. \" P) a% y3 [. X( Z6 Afor (i = 0x20; i > 0; i--);
3 `6 ?/ o8 r) s9 N$ m; z}
1 I% P% R$ m' i7 Z3 S Vwhile ((IFG1 & OFIFG) == OFIFG);// 如果OSCFault =1
+ `* a- D6 w" Z1 D- ^
" p6 t) F# P+ {. ^# @3 Z//將寄存器的內容清零
" T& A6 Y0 Q7 M8 b) v- aBCSCTL2 = 0X00;
/ g/ m5 C4 C5 |, y: v- P//MCLK的時鐘源為TX2CLK,分頻因子為12 t1 i, C/ g5 S( R! u
BCSCTL2 += SELM1;
$ ?$ x% s8 j+ |3 f3 y; H, N+ j/ E {//SMCLK的時鐘源為TX2CLK,分頻因子為1: h, s% V0 E( _+ F) W! a. b. v: |
BCSCTL2 += SELS; # b' c5 a( T7 Y+ t$ O3 P4 T
for (;;). p r1 k: Y% B8 ^% I2 N
{
$ ]# C# Q7 g3 F- Xvolatile unsigned int i;7 t( H& f, _% b5 S! g: N
2 q0 _5 V5 P" Z
P1OUT ^= 0x01; // Toggle P1.0 using exclusive-OR
4 K# u! m. _1 I- w1 r, e; ]+ ?4 M
% X, X) W+ p+ P( M
5 [; O6 b9 s8 p* C: r}/ _: ]( |- j8 c. W6 j3 h v+ C
} |
|