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

基于msp430g2553定时器产生pwm

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
#include "msp430g2553.h"
1 O6 @) A$ h& x//p1.2输出50%方波,p2.1和2.4输出50%和25%波形$ Z* T, Y/ @" n
void main (void) 0 o/ y- m6 J/ P
{ 3 g4 V4 B1 Z% k. G( w( c+ O
  WDTCTL= WDTPW + WDTHOLD; //设置看门狗控制寄存器,关看门狗
0 O3 w4 f" U9 ^, ^        ! f3 _1 c+ F3 n  x2 D) `- d; A
  //定时器A0的3 Q% r, m- W/ ]
  TACTL = TASSEL_1 +TACLR+MC_1; // 设置定时器A控制寄存器, 7 b, s) L& {0 |. Q
    // TASSEL_1选择辅助时钟ACLK,TASSEL_2选择子系统时钟SMCLK;
0 Y0 A  V' P& Z( h" U' R) e8 v+ R    // TACLR=0x0004,清除定时器A计数器
# t! \2 Y; d7 y3 ^% W0 y8 J  $ |" R/ [( B1 \
  CCR0 =12000;  //设置捕获/比较寄存器,初始值为12000,对于12KHz的频率,周期相当于1s  
' _4 O4 E- B! X8 c/ ]  CCR1=6000; //占空比50%! M4 R) L7 Y) ?* T
  CCTL1=OUTMOD_3;//置位复位,TAR等于CCR1时置位1,等于CCR0复位0,5 R6 I; ~) b6 w# G  z
  //增计数时相当于0到CCR1为低电平,ccr1到CCR0为高电平,: K, Q$ @. @' P0 }* w
  //OUTMOD_7与之相反/ I* V1 t* [' ~) z4 a* q+ g
  : k' a$ S/ x+ A" }
  CCR2=3000; //占空比25%,错了,没有TA0.2
) Z2 }; O* Y$ `3 |4 E  CCTL2=OUTMOD_3;//置位复位,TAR等于CCR1时置位1,等于CCR0复位0,
2 o. \0 ?$ D# F7 L  ?  //增计数时相当于0到CCR1为低电平,ccr1到CCR0为高电平,
9 N# ]4 q2 x# N* k1 w  z& w  //OUTMOD_7与之相反! Q+ ?8 @- w, @. m3 W# ]6 o
  P1SEL |=BIT2;
* e1 o4 j1 ^1 r: k; i/ e! n. T  P1DIR |=BIT2; //输出 TA0.1
! y" P* @  U9 C  9 I( V1 u# Z* s
  
1 W6 k/ H/ R3 a8 p) g! H  & ]! M9 u1 C/ ]2 K) m
  //定时器A1的
' z+ J4 y' `3 A8 j  TA1CTL = TASSEL_1 +TACLR+MC_1; // 设置定时器A控制寄存器, 6 }' B% b. \& N
    // TASSEL_1选择辅助时钟ACLK,TASSEL_2选择子系统时钟SMCLK;
; \2 J# x0 |7 O" j    // TACLR=0x0004,清除定时器A计数器 3 j3 h$ ]4 ^8 z" ?% [
  TA1CCR0 =12000;  //设置捕获/比较寄存器,初始值为32768,对于32768Hz的频率,周期相当于1s
; J5 P7 E9 I5 }/ o$ ^$ y  / \  R  J# O9 Q6 G/ }% |% [
  TA1CCR1=6000; //占空比50%
) W% _. N1 ^6 w, M9 D+ e  TA1CCTL1=OUTMOD_3;//置位复位,TAR等于CCR1时置位1,等于CCR0复位0,
' H4 `2 g& ?$ }6 Z: e$ |  //增计数时相当于0到CCR1为低电平,ccr1到CCR0为高电平,
, M/ [  i8 I% o% ^+ q0 r, G  //OUTMOD_7与之相反3 z1 {: c0 J/ O" w# _- Y' y* _3 E, t
  TA1CCR2=3000; //占空比25%. \  H. N4 i# K5 W$ {6 B
  TA1CCTL2=OUTMOD_3;//置位复位,TAR等于CCR1时置位1,等于CCR0复位0,
) I" P3 M( ^5 G+ f  o) p  //增计数时相当于0到CCR1为低电平,ccr1到CCR0为高电平,+ O% t9 r5 S- \/ j9 Q. ^5 V/ d
  //OUTMOD_7与之相反6 Y3 |, F4 P: M+ b3 k
  P2DIR |=BIT1+BIT4; //输出 TA2.1和TA2.2! l5 Z& Y" [- a9 K- W, a$ p8 {2 w
  P2SEL |=BIT1+BIT4; 8 l) t! t- H# V+ z" D, M* C" M2 ]1 I
  while(1) //无限次while循环
' v3 T- |2 z" F  {
' o) l7 M0 d  C) F6 S! O1 H  V     _NOP();/ R! v) ~$ G$ m: i% ]% Z1 m7 q
  }
7 h2 j5 f1 a1 b& Z7 m}

该用户从未签到

2#
发表于 2016-6-23 13:42 | 只看该作者
支持一下,很不错哦!. Y, |& r2 j: B$ d, z: _

该用户从未签到

3#
发表于 2016-6-23 14:32 | 只看该作者
真的谢了,提供这么好资料啊!- [3 e8 J" }& ?3 f) k/ a& L7 v

该用户从未签到

4#
发表于 2016-6-23 14:39 | 只看该作者
学习中,谢谢分享
5 v8 ?, G& l0 `
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-16 22:44 , Processed in 0.125000 second(s), 23 queries , Gzip On.

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

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

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