////*****重庆三峡学院电子与信息工程学院 创新实验室 唐老鸭*****//// #include "msp430g2553.h" //p1.2输出50%方波,p2.1和2.4输出50%和25%波形 void main (void) { WDTCTL= WDTPW + WDTHOLD; //设置看门狗控制寄存器,关看门狗 //定时器A0的 TACTL = TASSEL_1 +TACLR+MC_1; // 设置定时器A控制寄存器, // TASSEL_1选择辅助时钟ACLK,TASSEL_2选择子系统时钟SMCLK; // TACLR=0x0004,清除定时器A计数器 CCR0 =12000; //设置捕获/比较寄存器,初始值为12000,对于12KHz的频率,周期相当于1s CCR1=6000; //占空比50% CCTL1=OUTMOD_3;//置位复位,TAR等于CCR1时置位1,等于CCR0复位0, //增计数时相当于0到CCR1为低电平,ccr1到CCR0为高电平, //OUTMOD_7与之相反 CCR2=3000; //占空比25%,错了,没有TA0.2 CCTL2=OUTMOD_3;//置位复位,TAR等于CCR1时置位1,等于CCR0复位0, //增计数时相当于0到CCR1为低电平,ccr1到CCR0为高电平, //OUTMOD_7与之相反 P1SEL |=BIT2; P1DIR |=BIT2; //输出 TA0.1 //定时器A1的 TA1CTL = TASSEL_1 +TACLR+MC_1; // 设置定时器A控制寄存器, // TASSEL_1选择辅助时钟ACLK,TASSEL_2选择子系统时钟SMCLK; // TACLR=0x0004,清除定时器A计数器 TA1CCR0 =12000; //设置捕获/比较寄存器,初始值为32768,对于32768Hz的频率,周期相当于1s TA1CCR1=6000; //占空比50% TA1CCTL1=OUTMOD_3;//置位复位,TAR等于CCR1时置位1,等于CCR0复位0, //增计数时相当于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循环 { _NOP(); } }
|