|
EDA365欢迎您!
您需要 登录 才可以下载或查看,没有帐号?注册
x
#include "msp430g2553.h"
8 K1 `8 B1 h9 j& A2 `# P//p1.2输出50%方波,p2.1和2.4输出50%和25%波形
5 R, H+ q, m6 o* J1 S& pvoid main (void) - m/ {# P _2 j, @! F
{
' N! l! n2 s( Y# e8 j8 z WDTCTL= WDTPW + WDTHOLD; //设置看门狗控制寄存器,关看门狗
" Y, R4 O+ z, Z5 d+ r+ |! C* I) ` 4 I$ ?3 l1 Y8 ~/ v# C- V$ X; @
//定时器A0的
# @% s1 [# p* H4 ~ TACTL = TASSEL_1 +TACLR+MC_1; // 设置定时器A控制寄存器,
( x5 W2 k( o: K8 D8 P) E- h/ {, ? // TASSEL_1选择辅助时钟ACLK,TASSEL_2选择子系统时钟SMCLK;
7 u$ Q% ~1 w5 i; \$ [. S; b2 l // TACLR=0x0004,清除定时器A计数器 " R- A+ J) Z1 B1 t
9 j# v4 w% S4 x
CCR0 =12000; //设置捕获/比较寄存器,初始值为12000,对于12KHz的频率,周期相当于1s 5 ?# z3 L+ }) U
CCR1=6000; //占空比50%
6 i0 B. v2 `7 |" }2 p1 c CCTL1=OUTMOD_3;//置位复位,TAR等于CCR1时置位1,等于CCR0复位0,
r, y7 m4 U) z! l; a0 [& k$ } //增计数时相当于0到CCR1为低电平,ccr1到CCR0为高电平,% _, a1 K5 F+ o. e" W3 p3 d6 L
//OUTMOD_7与之相反
# F+ h4 [0 s% j' }
# x- P$ ?; u. ]8 G$ o1 U1 l3 A CCR2=3000; //占空比25%,错了,没有TA0.2, I) ~# L" k3 k( x. r- I- V( H
CCTL2=OUTMOD_3;//置位复位,TAR等于CCR1时置位1,等于CCR0复位0,
2 j" M* V$ Y; {% e* [ //增计数时相当于0到CCR1为低电平,ccr1到CCR0为高电平,2 [! \" R+ c) o" o
//OUTMOD_7与之相反8 f8 f- s+ m1 S8 m Z+ W
P1SEL |=BIT2; ) S1 N6 A6 m; a8 V! L1 l8 n
P1DIR |=BIT2; //输出 TA0.10 P0 {! z1 k& V. P, O" ^& Z) }
0 v, E9 C8 ^1 Z% g7 ]
! ?, e$ s9 e, ~7 a. c, ^3 z/ A . e- E' j/ f/ @" d
//定时器A1的
& C$ S! G. W/ ?2 [# a TA1CTL = TASSEL_1 +TACLR+MC_1; // 设置定时器A控制寄存器,
1 Q2 B" k1 l& S // TASSEL_1选择辅助时钟ACLK,TASSEL_2选择子系统时钟SMCLK;
; z+ F `* X; L- h // TACLR=0x0004,清除定时器A计数器 7 r& f0 ^7 T, k$ R
TA1CCR0 =12000; //设置捕获/比较寄存器,初始值为32768,对于32768Hz的频率,周期相当于1s
2 Z4 ~. H/ r1 o1 y! [" Q0 z' L! A& I % L+ E" r5 S5 L2 `! F# _4 F; K
TA1CCR1=6000; //占空比50%
9 Y$ I7 b4 B) i' G9 X) o! O TA1CCTL1=OUTMOD_3;//置位复位,TAR等于CCR1时置位1,等于CCR0复位0,4 R+ v# Z1 L1 o
//增计数时相当于0到CCR1为低电平,ccr1到CCR0为高电平,
8 d8 d6 u; R5 ^* S //OUTMOD_7与之相反( y$ v# F" L$ E( x( o1 r/ \8 y
TA1CCR2=3000; //占空比25%3 ]1 a0 d% v: z+ z4 g$ D( ]
TA1CCTL2=OUTMOD_3;//置位复位,TAR等于CCR1时置位1,等于CCR0复位0,
0 N: w* k) G: A7 E" l1 Y4 C //增计数时相当于0到CCR1为低电平,ccr1到CCR0为高电平,
0 W: C' ^0 ^' s# G) I' | //OUTMOD_7与之相反1 w& Y5 o7 I3 g% S! Q6 _9 {
P2DIR |=BIT1+BIT4; //输出 TA2.1和TA2.2- v, J0 P. j3 Z/ [; M/ Z( d
P2SEL |=BIT1+BIT4; % X. Q4 k7 b* s: l: P$ a2 `6 O% P. I6 \0 G
while(1) //无限次while循环 ( F( i0 U+ U3 U0 g& E
{! g& D% w$ \- M+ ~9 J
_NOP();& W/ s* d( [6 m& J7 r
}
0 y ~7 d, G1 Q8 J- x& n} |
|