|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
#include "MSP430x14x.h"
) @" S$ U3 l* l% q#define uint unsigned int
" ?) M% M$ k) \2 O+ M1 l#define uchar unsigned char
) ]* a- U$ K9 |& m% H ]- avoid delayms(uint ms)( a, H' d4 M2 y# @ y* ~. @
{! W) `2 J# I5 N" l
uchar i;
: S+ e# _% I% t: A7 ?0 z; N& N6 _ while(ms--)
7 E* X; w& q. E5 T( d, h1 r' G for(i=110;i>0;i--);
4 i! f# I6 k: a3 F9 F A8 k}$ W3 |; C2 T, s$ y( U/ ?% c1 _
void DSC_Init()
* R8 W( E, a+ F( _. g2 g0 }{
+ ?. Z5 ~9 r) V1 y. J. m BCSCTL1&=~XT2OFF;. s& i# i. J3 D+ X7 ~% t+ A
BCSCTL2|=SELM_2+DIVM_0;
# ]$ T- k( Z5 ~ do6 g. |& A! M! ^2 @" j
{3 l- H8 M0 ]4 m: m9 T R
IFG1&=~OFIFG;
, S, Y' |) |3 \5 K; b. N2 z5 u delayms(8);0 }5 d; H! F0 ~; }+ Z5 ~/ d+ q5 q
}6 }) k6 J9 I2 U! y5 W
while(IFG1&OFIFG);
1 A" j: i- D. k" D; c}
9 f6 N. E; T3 i6 kvoid PWMA_TA_Init(). T0 G) H6 V* p5 P; }6 ?3 f5 y+ J
{' r% H# B/ I* \& j
TACTL|=TASSEL_1+ID_0+MC_1+TACLR;$ c. Y. K1 L5 Q
TACCTL1|=OUTMOD_7;1 J8 C# M5 d* `8 R
TACCTL2|=OUTMOD_7;
0 F! Q1 b, z& u; s1 c TACCR0=10000;+ |7 Y. g6 q7 p1 Q$ n& N
TACCR1=5000;
* y9 b/ E6 r# M7 I# X! B" T+ Y TACCR2=100;$ i: V$ k9 s8 `6 W& ~
}* m: H3 K! I3 T% o9 M% f: r
void PWMA_IO_Init()
( H# [3 A6 c# a1 p0 X# ^{
0 H; Y/ W) r% W8 y4 I P1DIR|=BIT0+BIT2+BIT3+BIT5+BIT6+BIT7;
% q/ J' j2 \) t) [' e9 X9 R0 `4 M P2DIR|=BIT2+BIT3+BIT4;
$ w" H/ L+ r- d$ q( C- z% O P1SEL|=BIT1+BIT2+BIT3+BIT5+BIT6+BIT7;! _1 ` @( e5 \/ h4 g1 N% [ t
P2SEL|=BIT2+BIT3+BIT4;. |! N2 m, W% g. k9 _
}/ I M8 f1 ^: x2 D$ }+ V
void PWMB_IO_Init()6 c. d1 Z* }6 f' E- f$ i- g* P
{& ]7 E Q, M/ c( a
P4DIR|=BIT1;
! R+ _6 e% x" T% P; | P4SEL|=BIT1;4 ?6 T! g( T$ k
}( I/ e5 s! {+ C/ h% b# U. E
void PWMB_TB_Init()3 j2 G3 @! f- m
{
" I4 B) f. j1 S5 s0 Z" i TBCTL|=TBCLGRP_3+CNTL_0+TBSSEL_1+ID_0+MC_1+TBCLR;/ Q) b* l) I- |% n7 c( D' u$ y
TBCCR0=10000;5 `$ t7 @9 q% d0 s3 e" R
TBCCTL1|=OUTMOD_7;& `# {, ^! t$ Q: f
TBCCR2=100;
, D a9 P! T) u2 \+ C R TBCCTL2|=OUTMOD_7;
" I( q! d; P1 v) E2 ~$ m TBCCR2=200;
7 w0 g; k4 z5 a TBCCTL3|=OUTMOD_7;
' S7 B; a8 T) M8 D TBCCR3=400;/ O9 z9 D, G7 N1 @5 |: {4 _' v
TBCCTL4|=OUTMOD_7;5 m% _. ]) v# ^6 e
TBCCR4=1000;" P# ^! K4 S: ^3 c% o9 w
TBCCTL5|=OUTMOD_7;
+ e; C1 E' w+ s' R TBCCR5=2000;' X4 |* R, X- v. ~% U
TBCCTL6|=OUTMOD_7;0 I2 r% i `) I
TBCCR6=5000;# z; b8 ~ s) Q5 o0 O
}
0 Q. T" P$ R/ v: p; C Dvoid main( void )
! ^+ t. Y2 g$ L5 _( u6 y) X n; q{
8 h& G" j& d5 H7 q4 y6 ~- Z* P, L // Stop watchdog timer to prevent time out reset
7 Q9 n) w& [7 |2 F9 s/ W& D* n WDTCTL = WDTPW + WDTHOLD; A& Y9 W5 p4 H, ]# b$ z- w' D
DSC_Init();
# J z* _5 c! w5 T; L0 ] PWMA_IO_Init();
6 U* X- }: x) p// PWMB_IO_Init(); \. [8 r7 G; X! e( g( t( J
PWMA_TA_Init();
: f# J& z2 r+ S0 i8 F// PWMB_TB_Init();3 E" b& E$ h Q3 x. e
while(1);( w; Y4 K, ~) G; `3 r
}
% R. e/ O0 n/ H |
|