找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

巢课
电巢直播8月计划
查看: 73|回复: 3
打印 上一主题 下一主题

基于msp430g2553定时器产生pwm

[复制链接]

171

主题

616

帖子

1306

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

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

EDA365欢迎您!

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

x
#include "msp430g2553.h"6 n4 `( U4 }. f  [8 A6 P6 e. E5 S4 J
//p1.2输出50%方波,p2.1和2.4输出50%和25%波形
: \0 e3 }) |5 T' `, ^9 d4 G: {void main (void)
" }/ k0 w$ z% |) j{ . ]  A$ k& o8 ^- Z" o2 V# o
  WDTCTL= WDTPW + WDTHOLD; //设置看门狗控制寄存器,关看门狗
% ]/ A% E# |1 {        
# i+ u$ ?' o2 ^/ ^& b3 k7 \* K/ q  //定时器A0的# e0 `3 a7 k1 D8 h0 ]* p8 [
  TACTL = TASSEL_1 +TACLR+MC_1; // 设置定时器A控制寄存器,
: N! M& s- h; y; Q' f9 i    // TASSEL_1选择辅助时钟ACLK,TASSEL_2选择子系统时钟SMCLK;
9 V6 k+ m4 ]8 |    // TACLR=0x0004,清除定时器A计数器
; O% l$ f, f' i% [+ e5 e5 \* x  
& c$ K7 R' T! `$ ]! K  CCR0 =12000;  //设置捕获/比较寄存器,初始值为12000,对于12KHz的频率,周期相当于1s  
* w0 O; c: `+ x! k3 p9 i  CCR1=6000; //占空比50%3 W: c$ J8 r% v/ O# Y# z% a) B
  CCTL1=OUTMOD_3;//置位复位,TAR等于CCR1时置位1,等于CCR0复位0,
3 b, a4 B) c; \  //增计数时相当于0到CCR1为低电平,ccr1到CCR0为高电平,8 }  o' x2 \- ?8 b! \, L  \) j2 ^& O
  //OUTMOD_7与之相反( B8 ^6 \9 X9 q5 q6 [# D# c
  
+ B' ?! H; M: J3 O( k9 X( ]# l  CCR2=3000; //占空比25%,错了,没有TA0.2
- f" C1 }! Q  H( b8 n( v  CCTL2=OUTMOD_3;//置位复位,TAR等于CCR1时置位1,等于CCR0复位0,
. N. O1 K( B4 c% V5 q- n" [4 B) y  //增计数时相当于0到CCR1为低电平,ccr1到CCR0为高电平,, Z5 `9 `: q8 b7 }3 U% g7 I- p3 ?
  //OUTMOD_7与之相反: o! L+ i, `$ n
  P1SEL |=BIT2; ! O% b5 q( w1 |" p
  P1DIR |=BIT2; //输出 TA0.1
* E6 l- @8 e' }, M4 e! k5 \. b    h* N# E& @. w
  
" A% m1 m* }/ Y8 H( g8 |; g# _  
- t$ Z: A/ q( J" ~) r' i  //定时器A1的+ Z) O/ S7 F" n( c( H/ n3 O4 q+ y
  TA1CTL = TASSEL_1 +TACLR+MC_1; // 设置定时器A控制寄存器,   b" I4 g5 ]$ B8 q* u
    // TASSEL_1选择辅助时钟ACLK,TASSEL_2选择子系统时钟SMCLK;
# i" Z9 S* K$ e4 b    // TACLR=0x0004,清除定时器A计数器 % \! t; {. J: p/ r
  TA1CCR0 =12000;  //设置捕获/比较寄存器,初始值为32768,对于32768Hz的频率,周期相当于1s $ B& n* C/ ~: x! Q" `( U8 @  J$ {
  
7 ]! i+ ]8 {' W6 h8 Z  b1 L: u  TA1CCR1=6000; //占空比50%
9 [3 K2 x2 H( {, c  TA1CCTL1=OUTMOD_3;//置位复位,TAR等于CCR1时置位1,等于CCR0复位0,
; f$ V% G9 l, l0 Y* _6 L  //增计数时相当于0到CCR1为低电平,ccr1到CCR0为高电平,3 j8 F2 Z4 q4 ]! `$ J
  //OUTMOD_7与之相反6 e. G' R2 k2 l! k
  TA1CCR2=3000; //占空比25%, `1 e6 I# y* d+ @# Y  F) }% m4 G
  TA1CCTL2=OUTMOD_3;//置位复位,TAR等于CCR1时置位1,等于CCR0复位0,
) s7 S7 l. |( G$ T  //增计数时相当于0到CCR1为低电平,ccr1到CCR0为高电平,% U  S/ t1 ~* a* e- c& a
  //OUTMOD_7与之相反
: m+ {) N& K9 L0 }7 m  P2DIR |=BIT1+BIT4; //输出 TA2.1和TA2.2( U5 ]8 g% t; y
  P2SEL |=BIT1+BIT4;
6 B' `0 ]3 M; A3 m2 a4 w  x  while(1) //无限次while循环 ( r1 M: e0 k. f7 [# c2 K" O
  {
' c2 V* B% Z' p     _NOP();6 y) i3 j, d2 N4 f
  }
6 w( k; @' O  ?0 D8 D9 N7 ]}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 支持!支持! 反对!反对!

245

主题

1028

帖子

1921

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1921
2#
发表于 2016-6-23 13:42 | 只看该作者
支持一下,很不错哦!" k; K" P. K( f. e

159

主题

583

帖子

1229

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1229
3#
发表于 2016-6-23 14:32 | 只看该作者
真的谢了,提供这么好资料啊!
/ G1 m  ?/ O! l

157

主题

559

帖子

1198

积分

四级会员(40)

Rank: 4Rank: 4Rank: 4Rank: 4

积分
1198
4#
发表于 2016-6-23 14:39 | 只看该作者
学习中,谢谢分享
* l2 E# g+ ^2 |6 k; J3 H
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

技术风云榜

关于我们|手机版|EDA365 ( 粤ICP备18020198号 )

GMT+8, 2024-11-24 08:03 , Processed in 0.057289 second(s), 31 queries , Gzip On.

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

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

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