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

基于msp430g2553定时器产生pwm

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
#include "msp430g2553.h"
' C: s6 a9 n& p+ h- c- B: W//p1.2输出50%方波,p2.1和2.4输出50%和25%波形; m) O, t0 K; g" q) H# M
void main (void)
$ r5 t  A( a+ E; O{
4 L1 \3 {6 Z7 |9 |4 b; t  WDTCTL= WDTPW + WDTHOLD; //设置看门狗控制寄存器,关看门狗 7 ^7 i, N( M$ A! Z0 F
        5 k. M& h  ~' M( q* D! [
  //定时器A0的
" Y3 q9 _( w1 C) U7 c  TACTL = TASSEL_1 +TACLR+MC_1; // 设置定时器A控制寄存器, " y2 p' d, g$ d, t: a
    // TASSEL_1选择辅助时钟ACLK,TASSEL_2选择子系统时钟SMCLK; " X9 ?3 g: K& E, z- v
    // TACLR=0x0004,清除定时器A计数器
! R1 J2 _1 W4 n7 L: {7 d  
  q. D. S/ s% D  CCR0 =12000;  //设置捕获/比较寄存器,初始值为12000,对于12KHz的频率,周期相当于1s  4 X/ ?) g' d0 w3 a
  CCR1=6000; //占空比50%5 b$ C; D8 d/ P3 a, B/ o
  CCTL1=OUTMOD_3;//置位复位,TAR等于CCR1时置位1,等于CCR0复位0,: M2 {) c1 C. S1 H
  //增计数时相当于0到CCR1为低电平,ccr1到CCR0为高电平,
+ v% P* u6 k4 g# ?, J- _  //OUTMOD_7与之相反
- d% d$ S( F, Y, a7 l  
3 i1 k/ a; |  X  CCR2=3000; //占空比25%,错了,没有TA0.2
# Y! N+ D0 x! r+ F# S7 o  CCTL2=OUTMOD_3;//置位复位,TAR等于CCR1时置位1,等于CCR0复位0,
: x/ G$ K# P; g9 v. U  //增计数时相当于0到CCR1为低电平,ccr1到CCR0为高电平,$ _4 x8 c) H' S' f' N- X$ r; d- X* c
  //OUTMOD_7与之相反0 D8 v7 z" a: n7 b( N2 X
  P1SEL |=BIT2;
5 q9 g: G8 X2 R! [$ i: k0 w1 m  P1DIR |=BIT2; //输出 TA0.1" L' F2 S& h8 o- p) `" q
  0 ~8 [( h* F1 m% d2 i/ c! l
  
5 z0 H4 R+ e7 m& q" Z4 K  
$ V9 V6 q" e; R% L/ E  //定时器A1的, b" O+ \# k. k0 k2 R
  TA1CTL = TASSEL_1 +TACLR+MC_1; // 设置定时器A控制寄存器,
2 Z8 _0 l& ?7 Y    // TASSEL_1选择辅助时钟ACLK,TASSEL_2选择子系统时钟SMCLK; 8 s) y6 W0 A/ B7 _
    // TACLR=0x0004,清除定时器A计数器
, N$ U: |- d) |; w. t8 m& n, y  TA1CCR0 =12000;  //设置捕获/比较寄存器,初始值为32768,对于32768Hz的频率,周期相当于1s
. d; R$ U# x: X  7 t2 V1 \8 u- M( H9 D
  TA1CCR1=6000; //占空比50%7 D% \. n/ ]( t& ?( j& e4 o8 y
  TA1CCTL1=OUTMOD_3;//置位复位,TAR等于CCR1时置位1,等于CCR0复位0,
& L4 G# m* T7 e+ J) a2 w. S; o" V  //增计数时相当于0到CCR1为低电平,ccr1到CCR0为高电平,
- c5 @2 o# K) J" e  //OUTMOD_7与之相反
% ?% a# o# [& c  z/ y  TA1CCR2=3000; //占空比25%2 b; |0 ?* s3 |
  TA1CCTL2=OUTMOD_3;//置位复位,TAR等于CCR1时置位1,等于CCR0复位0,1 N+ A1 e# k0 `% A2 c' r
  //增计数时相当于0到CCR1为低电平,ccr1到CCR0为高电平,
5 q% X8 j! f9 c7 d! h5 e4 e  //OUTMOD_7与之相反
0 H  w$ d! G. r' x! M$ S  P2DIR |=BIT1+BIT4; //输出 TA2.1和TA2.2, E) ^8 U8 q* l3 d# d+ i
  P2SEL |=BIT1+BIT4; 6 L' S/ t- i2 [. u7 ]+ e- I
  while(1) //无限次while循环
* [4 Y9 T/ M9 Q" J2 c  {
$ c+ ?7 \( h5 l; k; _     _NOP();0 v8 }* n  z1 K) \
  }
0 y5 ^) E8 k2 b# g8 {}

该用户从未签到

2#
发表于 2016-6-23 13:42 | 只看该作者
支持一下,很不错哦!' \8 Z0 F; N. |& }$ I9 [; {/ b% L: ^

该用户从未签到

3#
发表于 2016-6-23 14:32 | 只看该作者
真的谢了,提供这么好资料啊!
; K1 _+ a( o% K* r" H5 m9 w5 @( W

该用户从未签到

4#
发表于 2016-6-23 14:39 | 只看该作者
学习中,谢谢分享
+ ?5 c/ l. D! m
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-6-13 23:41 , Processed in 0.062500 second(s), 23 queries , Gzip On.

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

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

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