找回密码
 注册
关于网站域名变更的通知
查看: 355|回复: 3
打印 上一主题 下一主题

基于msp430g2553定时器产生pwm

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2016-6-22 11:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
#include "msp430g2553.h"
% h# r- h6 y8 b9 B( b0 U, I//p1.2输出50%方波,p2.1和2.4输出50%和25%波形. w( X# f$ |% l4 _/ H: E
void main (void) 0 {% p/ Z( I% q0 L* o
{ ( f; s! A# x$ P& \/ d+ Y
  WDTCTL= WDTPW + WDTHOLD; //设置看门狗控制寄存器,关看门狗 % H% `1 ?( R  E& B& o
        
5 `, j$ A0 n# b$ Y4 |# d( L0 f  //定时器A0的1 O4 u/ i; D- ]: c" |! ^, _
  TACTL = TASSEL_1 +TACLR+MC_1; // 设置定时器A控制寄存器,
& B$ U- j- m# _    // TASSEL_1选择辅助时钟ACLK,TASSEL_2选择子系统时钟SMCLK;
% ~- a: _- A- c, p' P' Y    // TACLR=0x0004,清除定时器A计数器 2 ]" U' F8 }$ |9 q; r! c( V
  
; r  b3 `2 R$ e4 C  CCR0 =12000;  //设置捕获/比较寄存器,初始值为12000,对于12KHz的频率,周期相当于1s  
1 m1 T& A! p" Z, B$ D. ?  CCR1=6000; //占空比50%
2 V* `" q5 i+ e& j7 ~- ~% E" q  CCTL1=OUTMOD_3;//置位复位,TAR等于CCR1时置位1,等于CCR0复位0,4 j+ n5 [: y7 s7 K, J
  //增计数时相当于0到CCR1为低电平,ccr1到CCR0为高电平,& d  m9 t; E0 }; `3 S5 x
  //OUTMOD_7与之相反- r4 f% f, g% o* x
  5 X/ |& i* y/ r8 O
  CCR2=3000; //占空比25%,错了,没有TA0.2' \# i7 T) @' A9 W6 E
  CCTL2=OUTMOD_3;//置位复位,TAR等于CCR1时置位1,等于CCR0复位0,! x/ v! j5 B- [3 c
  //增计数时相当于0到CCR1为低电平,ccr1到CCR0为高电平,' I$ g" k6 a, {, Q* b! c
  //OUTMOD_7与之相反5 A) [9 ^8 Y6 I: w* a5 A
  P1SEL |=BIT2; + k3 F4 a0 g1 m7 G( @
  P1DIR |=BIT2; //输出 TA0.1
4 O4 d4 v' Y% U: Z! A) M& [- |  9 f9 `/ Q& t! q# ~: W1 a
  $ F8 T% I# b) P6 u
  
  J# G2 `  }$ ]* e  \- X+ k  //定时器A1的# P" h: K* _, X4 k5 d" d
  TA1CTL = TASSEL_1 +TACLR+MC_1; // 设置定时器A控制寄存器,
+ _6 ?# {1 F( T4 y) q+ k    // TASSEL_1选择辅助时钟ACLK,TASSEL_2选择子系统时钟SMCLK;
8 J1 x* g* J$ p    // TACLR=0x0004,清除定时器A计数器 , L. s  B9 X) C; X  K8 k# S  w* H
  TA1CCR0 =12000;  //设置捕获/比较寄存器,初始值为32768,对于32768Hz的频率,周期相当于1s 5 j! M% S! L7 Q' d
  
3 t) q7 `$ f% w/ }2 T4 {8 ^4 ~  TA1CCR1=6000; //占空比50%4 r' H& l) S: v
  TA1CCTL1=OUTMOD_3;//置位复位,TAR等于CCR1时置位1,等于CCR0复位0,
+ R( v1 P; B) G% D( ^: A# b% }  //增计数时相当于0到CCR1为低电平,ccr1到CCR0为高电平,
2 s8 f1 }) Q! F3 I  //OUTMOD_7与之相反
4 A, t8 }9 k  @0 \  TA1CCR2=3000; //占空比25%
4 h. d; d+ g  c1 i5 ]+ c  TA1CCTL2=OUTMOD_3;//置位复位,TAR等于CCR1时置位1,等于CCR0复位0,# A& b3 I7 G5 d" j) o  Z
  //增计数时相当于0到CCR1为低电平,ccr1到CCR0为高电平,
3 n2 _6 M- T, e, M; i) t" c7 p  //OUTMOD_7与之相反
- N+ \- t" J' ]  `' m  P2DIR |=BIT1+BIT4; //输出 TA2.1和TA2.29 H  N/ e1 `2 C) T/ V3 P
  P2SEL |=BIT1+BIT4; ( J3 d- p& s- P: J; |2 `
  while(1) //无限次while循环
& \1 w5 |; U' V: E+ A7 @5 g  {' C  ?) U$ w, y8 J" D
     _NOP();7 S. K* g4 Q* F, g+ r! M
  }
) m  j2 |6 P; O# x9 ]}

该用户从未签到

2#
发表于 2016-6-23 13:42 | 只看该作者
支持一下,很不错哦!* T; j* n$ L8 }8 Y" M2 g

该用户从未签到

3#
发表于 2016-6-23 14:32 | 只看该作者
真的谢了,提供这么好资料啊!( _" [# q+ v  K+ H

该用户从未签到

4#
发表于 2016-6-23 14:39 | 只看该作者
学习中,谢谢分享$ ~" j' Y* g3 b0 l4 v
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-6-6 10:09 , Processed in 0.078125 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表