|
#include "msp430g2553.h"
//p1.2输出50%方波,p2.1和2.4输出50%和25%波形/ `, @- Z y; C+ i% Q
void main (void)
{
WDTCTL= WDTPW + WDTHOLD; //设置看门狗控制寄存器,关看门狗
//定时器A0的
TACTL = TASSEL_1 +TACLR+MC_1; // 设置定时器A控制寄存器, 2 n9 N! @( }8 G5 Z
// TASSEL_1选择辅助时钟ACLK,TASSEL_2选择子系统时钟SMCLK; / [' Z* \5 Q Z4 g( ?0 D7 p8 ]( Y
// TACLR=0x0004,清除定时器A计数器
CCR0 =12000; //设置捕获/比较寄存器,初始值为12000,对于12KHz的频率,周期相当于1s
CCR1=6000; //占空比50%2 @5 d. ?* |3 {4 ^ r* c
CCTL1=OUTMOD_3;//置位复位,TAR等于CCR1时置位1,等于CCR0复位0,
//增计数时相当于0到CCR1为低电平,ccr1到CCR0为高电平,
//OUTMOD_7与之相反
' R( a8 [% M6 ^2 [5 v* z: [+ P( f+ K
CCR2=3000; //占空比25%,错了,没有TA0.24 M/ N s$ |" J( o3 |9 I
CCTL2=OUTMOD_3;//置位复位,TAR等于CCR1时置位1,等于CCR0复位0,4 J' u U7 ?3 {0 w5 c. M$ q! \5 _
//增计数时相当于0到CCR1为低电平,ccr1到CCR0为高电平,
//OUTMOD_7与之相反
P1SEL |=BIT2;
P1DIR |=BIT2; //输出 TA0.1
! `# C; D* m( ~' ~
//定时器A1的
TA1CTL = TASSEL_1 +TACLR+MC_1; // 设置定时器A控制寄存器,
// TASSEL_1选择辅助时钟ACLK,TASSEL_2选择子系统时钟SMCLK; 4 X# O) y! D$ C8 O. f
// TACLR=0x0004,清除定时器A计数器
TA1CCR0 =12000; //设置捕获/比较寄存器,初始值为32768,对于32768Hz的频率,周期相当于1s 0 c" l2 A! s+ V5 t
; M8 p2 y5 \2 `3 U. N
TA1CCR1=6000; //占空比50%
TA1CCTL1=OUTMOD_3;//置位复位,TAR等于CCR1时置位1,等于CCR0复位0,' M, Q' F) {, S2 ]* |
//增计数时相当于0到CCR1为低电平,ccr1到CCR0为高电平,
//OUTMOD_7与之相反
TA1CCR2=3000; //占空比25%
TA1CCTL2=OUTMOD_3;//置位复位,TAR等于CCR1时置位1,等于CCR0复位0,
//增计数时相当于0到CCR1为低电平,ccr1到CCR0为高电平,
//OUTMOD_7与之相反
P2DIR |=BIT1+BIT4; //输出 TA2.1和TA2.2
P2SEL |=BIT1+BIT4;
while(1) //无限次while循环 / B# z: J' {% m& t* z& p- A
{
_NOP();
}0 i( g8 A8 Z. P: m
} |
|
|