请选择 进入手机版 | 继续访问电脑版

EDABOSS电子论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 782|回复: 0

[转帖] 基于msp430g2553定时器产生pwm

[复制链接]

106

主题

13

回帖

96

E币

助理工程师

Rank: 3Rank: 3

积分
225
发表于 2018-11-28 15:53:59 | 显示全部楼层 |阅读模式
#include "msp430g2553.h"
//p1.2输出50%方波,p2.1和2.4输出50%和25%波形/ `, @- Z  y; C+ i% Q
void main (void)
{
  WDTCTL= WDTPW + WDTHOLD; //设置看门狗控制寄存器,关看门狗
        
  //定时器A0的
  TACTL = TASSEL_1 +TACLR+MC_1; // 设置定时器A控制寄存器, 2 n9 N! @( }8 G5 Z
    // TASSEL_1选择辅助时钟ACLK,TASSEL_2选择子系统时钟SMCLK; / [' Z* \5 Q  Z4 g( ?0 D7 p8 ]( Y
    // TACLR=0x0004,清除定时器A计数器
  
  CCR0 =12000;  //设置捕获/比较寄存器,初始值为12000,对于12KHz的频率,周期相当于1s  
  CCR1=6000; //占空比50%2 @5 d. ?* |3 {4 ^  r* c
  CCTL1=OUTMOD_3;//置位复位,TAR等于CCR1时置位1,等于CCR0复位0,
  //增计数时相当于0到CCR1为低电平,ccr1到CCR0为高电平,
  //OUTMOD_7与之相反
  ' R( a8 [% M6 ^2 [5 v* z: [+ P( f+ K
  CCR2=3000; //占空比25%,错了,没有TA0.24 M/ N  s$ |" J( o3 |9 I
  CCTL2=OUTMOD_3;//置位复位,TAR等于CCR1时置位1,等于CCR0复位0,4 J' u  U7 ?3 {0 w5 c. M$ q! \5 _
  //增计数时相当于0到CCR1为低电平,ccr1到CCR0为高电平,
  //OUTMOD_7与之相反
  P1SEL |=BIT2;
  P1DIR |=BIT2; //输出 TA0.1
  
  ! `# C; D* m( ~' ~
  
  //定时器A1的
  TA1CTL = TASSEL_1 +TACLR+MC_1; // 设置定时器A控制寄存器,
    // TASSEL_1选择辅助时钟ACLK,TASSEL_2选择子系统时钟SMCLK; 4 X# O) y! D$ C8 O. f
    // TACLR=0x0004,清除定时器A计数器
  TA1CCR0 =12000;  //设置捕获/比较寄存器,初始值为32768,对于32768Hz的频率,周期相当于1s 0 c" l2 A! s+ V5 t
  ; M8 p2 y5 \2 `3 U. N
  TA1CCR1=6000; //占空比50%
  TA1CCTL1=OUTMOD_3;//置位复位,TAR等于CCR1时置位1,等于CCR0复位0,' M, Q' F) {, S2 ]* |
  //增计数时相当于0到CCR1为低电平,ccr1到CCR0为高电平,
  //OUTMOD_7与之相反
  TA1CCR2=3000; //占空比25%
  TA1CCTL2=OUTMOD_3;//置位复位,TAR等于CCR1时置位1,等于CCR0复位0,
  //增计数时相当于0到CCR1为低电平,ccr1到CCR0为高电平,
  //OUTMOD_7与之相反
  P2DIR |=BIT1+BIT4; //输出 TA2.1和TA2.2
  P2SEL |=BIT1+BIT4;
  while(1) //无限次while循环 / B# z: J' {% m& t* z& p- A
  {
     _NOP();
  }0 i( g8 A8 Z. P: m
}

积分规则
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|EDABOSS电子论坛

GMT+8, 2024-4-18 18:39 , Processed in 0.038136 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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