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

基于msp430g2553定时器产生pwm

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
#include "msp430g2553.h"
4 I" E9 a# {, G3 D! N9 }//p1.2输出50%方波,p2.1和2.4输出50%和25%波形* I' I4 y' X5 x1 f. Z5 j
void main (void) 5 ^5 {/ W" z7 g; v
{ . v4 b" F" _1 M! o
  WDTCTL= WDTPW + WDTHOLD; //设置看门狗控制寄存器,关看门狗
. c: b' N& f. ?. K        
- @; R) X8 N& a  //定时器A0的
$ ^8 r' H( z8 U( b: C/ z  TACTL = TASSEL_1 +TACLR+MC_1; // 设置定时器A控制寄存器, 9 V6 j. ?; h7 S6 K6 K" Q2 s
    // TASSEL_1选择辅助时钟ACLK,TASSEL_2选择子系统时钟SMCLK; . O+ Z- d4 n- f" F9 b. ^
    // TACLR=0x0004,清除定时器A计数器 4 t5 A' s5 q- M6 B* E0 i
  ' K4 X( C5 o1 h' w
  CCR0 =12000;  //设置捕获/比较寄存器,初始值为12000,对于12KHz的频率,周期相当于1s  
( H+ j' `0 |# {3 J; e  CCR1=6000; //占空比50%9 F; q1 |4 s( ]- g9 O% x
  CCTL1=OUTMOD_3;//置位复位,TAR等于CCR1时置位1,等于CCR0复位0,
0 ]/ \/ t9 k9 T  //增计数时相当于0到CCR1为低电平,ccr1到CCR0为高电平,
3 ?7 T5 ]/ j, |! B  //OUTMOD_7与之相反
3 d" n* P. S: {  a" f4 T8 H; m  * a! O' L3 i. `* F/ m& B
  CCR2=3000; //占空比25%,错了,没有TA0.2! M( g9 a. ~& Z: U7 P$ Z
  CCTL2=OUTMOD_3;//置位复位,TAR等于CCR1时置位1,等于CCR0复位0,/ y0 Q2 G, V1 F2 f
  //增计数时相当于0到CCR1为低电平,ccr1到CCR0为高电平,
0 a# I1 u' T: R5 o) U$ ^0 c  //OUTMOD_7与之相反
$ l- ]% T3 g% Z" g  P1SEL |=BIT2; % K- h+ S8 ]! A: m$ v
  P1DIR |=BIT2; //输出 TA0.1
" ^. q$ X+ B7 j+ S: C  3 `6 c. N% S# B8 q
  
) N8 h. W; X4 J7 l  3 D, V0 s4 J4 e
  //定时器A1的. {% V  b/ W$ F
  TA1CTL = TASSEL_1 +TACLR+MC_1; // 设置定时器A控制寄存器, 1 V& Y; Y: t; d8 w
    // TASSEL_1选择辅助时钟ACLK,TASSEL_2选择子系统时钟SMCLK; ' r! o' y% N. |( t; v+ L0 l
    // TACLR=0x0004,清除定时器A计数器 5 [* F1 B0 A+ W$ T; t
  TA1CCR0 =12000;  //设置捕获/比较寄存器,初始值为32768,对于32768Hz的频率,周期相当于1s - h8 x% g7 _. v& Z3 `- C& W
  2 E' V2 c$ z% J1 I& J
  TA1CCR1=6000; //占空比50%
) F* _# x4 {  W( G) s7 F  n: n- H  TA1CCTL1=OUTMOD_3;//置位复位,TAR等于CCR1时置位1,等于CCR0复位0,
' i% W; U( |1 O4 v5 J* P  //增计数时相当于0到CCR1为低电平,ccr1到CCR0为高电平,
( ]2 z9 `& \: ^$ z  //OUTMOD_7与之相反
/ y) v4 A7 b4 E6 h  TA1CCR2=3000; //占空比25%
: r( m, b7 j# p# `9 g8 }  TA1CCTL2=OUTMOD_3;//置位复位,TAR等于CCR1时置位1,等于CCR0复位0,8 e$ i' E4 j. m6 M
  //增计数时相当于0到CCR1为低电平,ccr1到CCR0为高电平,% T+ y, ~0 P2 L& k6 Y
  //OUTMOD_7与之相反9 |* S, ]0 o+ t( [4 {6 @" ]
  P2DIR |=BIT1+BIT4; //输出 TA2.1和TA2.2
$ }  X3 N; Z' i' R, N  P2SEL |=BIT1+BIT4;
, w, E( C* e( }: d  while(1) //无限次while循环
& `$ w$ H3 z5 n- k- m7 o  {
  X- c# s6 T+ @# A     _NOP();
# U2 X( J( C9 T' |  }
, _- h( c2 O4 y6 r2 z# _+ P6 J}

该用户从未签到

2#
发表于 2016-6-23 13:42 | 只看该作者
支持一下,很不错哦!
* T% m) s, c! p, s

该用户从未签到

3#
发表于 2016-6-23 14:32 | 只看该作者
真的谢了,提供这么好资料啊!
$ @& o: A! K2 ]& C

该用户从未签到

4#
发表于 2016-6-23 14:39 | 只看该作者
学习中,谢谢分享" u" W7 T# |( @! ~: T" ]( L! L
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-8-24 17:33 , Processed in 0.109375 second(s), 23 queries , Gzip On.

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

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

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