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

基于msp430g2553定时器产生pwm

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
#include "msp430g2553.h"! f5 j9 `! H* @& U" Q
//p1.2输出50%方波,p2.1和2.4输出50%和25%波形
  s6 s! v9 {% t% Yvoid main (void)
% J6 o1 ?7 @; ?- u& E- K2 N) R{
2 b# p+ W. U) }4 f7 b0 O  WDTCTL= WDTPW + WDTHOLD; //设置看门狗控制寄存器,关看门狗 4 ^+ k- K9 U- j* b4 i9 k
        
6 K! a  }4 j: |/ R9 I  G  //定时器A0的
  f4 \1 a) b) o9 u+ v9 I  TACTL = TASSEL_1 +TACLR+MC_1; // 设置定时器A控制寄存器,
0 ^9 U: r; |. }1 {  Y2 _    // TASSEL_1选择辅助时钟ACLK,TASSEL_2选择子系统时钟SMCLK;
8 W; p1 G6 b+ @- f9 R  \    // TACLR=0x0004,清除定时器A计数器
( ~7 @6 E) O! x+ H4 U+ c  ! t5 ?; w8 F7 `% ?
  CCR0 =12000;  //设置捕获/比较寄存器,初始值为12000,对于12KHz的频率,周期相当于1s    W' L# j, w7 H& ?" @6 g9 t
  CCR1=6000; //占空比50%9 ^+ {& r1 |3 W5 X, _
  CCTL1=OUTMOD_3;//置位复位,TAR等于CCR1时置位1,等于CCR0复位0,9 y' F1 ^; n0 l" P& ^4 r! [/ q% v
  //增计数时相当于0到CCR1为低电平,ccr1到CCR0为高电平,; l/ g8 Q, o! C3 z  _" H
  //OUTMOD_7与之相反
4 x; {6 N4 y& E: t% r  
+ T9 o) q: @( Q  CCR2=3000; //占空比25%,错了,没有TA0.2
7 e1 M  W+ f. t* ~$ `8 c  CCTL2=OUTMOD_3;//置位复位,TAR等于CCR1时置位1,等于CCR0复位0,: S2 l# O* d0 U6 O3 B* V' r& {, p
  //增计数时相当于0到CCR1为低电平,ccr1到CCR0为高电平,
$ a  o" _' R; w7 K# E, Q  r  //OUTMOD_7与之相反- d$ O) J/ R) A( s7 ~
  P1SEL |=BIT2;
* z0 g4 J9 }& V  P1DIR |=BIT2; //输出 TA0.1
$ J6 l# D; a/ r0 x. y+ S, a  
$ j% d* b  R+ `% a6 _4 B  
0 `. K5 l* @' N0 y  q  1 u6 l% ?  L4 ?! Z$ j0 X1 G3 w
  //定时器A1的* r1 F8 E* l, \* \* K
  TA1CTL = TASSEL_1 +TACLR+MC_1; // 设置定时器A控制寄存器,
& |) p8 g4 h, e8 a1 ^    // TASSEL_1选择辅助时钟ACLK,TASSEL_2选择子系统时钟SMCLK; 9 t% O" ~1 o: h! x' O5 R
    // TACLR=0x0004,清除定时器A计数器
* H& a& s# S, v) I$ G7 n- p  TA1CCR0 =12000;  //设置捕获/比较寄存器,初始值为32768,对于32768Hz的频率,周期相当于1s 1 m4 @4 q9 j: S5 c& {
  / b# M' S5 _# ^2 k1 |+ F
  TA1CCR1=6000; //占空比50%7 ?* z7 Y* i4 ^# q
  TA1CCTL1=OUTMOD_3;//置位复位,TAR等于CCR1时置位1,等于CCR0复位0,6 p; `4 Q5 u' D3 l" B
  //增计数时相当于0到CCR1为低电平,ccr1到CCR0为高电平,+ f: i9 k) V2 f& a; E( o" k4 X
  //OUTMOD_7与之相反- `9 l( T# S( o  W
  TA1CCR2=3000; //占空比25%- }$ f- M$ \+ r% C
  TA1CCTL2=OUTMOD_3;//置位复位,TAR等于CCR1时置位1,等于CCR0复位0,
, R) k! p4 R1 {, H4 ^# Z+ G  //增计数时相当于0到CCR1为低电平,ccr1到CCR0为高电平,2 q4 E' Q: Q" }8 z" I
  //OUTMOD_7与之相反/ z3 U8 Y: t% c# I: h4 @
  P2DIR |=BIT1+BIT4; //输出 TA2.1和TA2.2  I+ R7 h) z% `3 Q& L9 U: O
  P2SEL |=BIT1+BIT4; $ L/ `  {( x( P8 L% ~' K
  while(1) //无限次while循环
$ s; U' Z+ l5 [% Q* d  {
) Q9 H& K7 {/ V, y0 F     _NOP();
* I3 v; [: }- ?& Q/ m  }
8 `2 V) r0 `* k3 P}

该用户从未签到

2#
发表于 2016-6-23 13:42 | 只看该作者
支持一下,很不错哦!' N  q  h  s8 k- a

该用户从未签到

3#
发表于 2016-6-23 14:32 | 只看该作者
真的谢了,提供这么好资料啊!
- d: {8 a3 D: i- J  v+ T" U1 k

该用户从未签到

4#
发表于 2016-6-23 14:39 | 只看该作者
学习中,谢谢分享
" r. x& ]4 O. E% h# s+ a
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-12 10:30 , Processed in 0.140625 second(s), 23 queries , Gzip On.

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

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

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