找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5351|回复: 5
打印 上一主题 下一主题
收起左侧

msp430f149设置pwm波

[复制链接]
跳转到指定楼层
楼主
ID:326642 发表于 2018-5-10 11:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include "MSP430x14x.h"
#define uint unsigned int
#define uchar unsigned char
void delayms(uint ms)
{
  uchar i;
  while(ms--)
    for(i=110;i>0;i--);
}
void DSC_Init()
{
  BCSCTL1&=~XT2OFF;
  BCSCTL2|=SELM_2+DIVM_0;
  do
  {
    IFG1&=~OFIFG;
    delayms(8);
  }
  while(IFG1&OFIFG);
}
void PWMA_TA_Init()
{
  TACTL|=TASSEL_1+ID_0+MC_1+TACLR;
  TACCTL1|=OUTMOD_7;
  TACCTL2|=OUTMOD_7;
  TACCR0=10000;
  TACCR1=5000;
  TACCR2=100;
}
void PWMA_IO_Init()
{
  P1DIR|=BIT0+BIT2+BIT3+BIT5+BIT6+BIT7;
  P2DIR|=BIT2+BIT3+BIT4;
  P1SEL|=BIT1+BIT2+BIT3+BIT5+BIT6+BIT7;
  P2SEL|=BIT2+BIT3+BIT4;
}
void PWMB_IO_Init()
{
  P4DIR|=BIT1;
  P4SEL|=BIT1;
}
void PWMB_TB_Init()
{
  TBCTL|=TBCLGRP_3+CNTL_0+TBSSEL_1+ID_0+MC_1+TBCLR;
  TBCCR0=10000;
  TBCCTL1|=OUTMOD_7;
  TBCCR2=100;
  TBCCTL2|=OUTMOD_7;
  TBCCR2=200;
  TBCCTL3|=OUTMOD_7;
  TBCCR3=400;
  TBCCTL4|=OUTMOD_7;
  TBCCR4=1000;
  TBCCTL5|=OUTMOD_7;
  TBCCR5=2000;
  TBCCTL6|=OUTMOD_7;
  TBCCR6=5000;
}
void main( void )
{
  // Stop watchdog timer to prevent time out reset
  WDTCTL = WDTPW + WDTHOLD;
  DSC_Init();
  PWMA_IO_Init();
// PWMB_IO_Init();
  PWMA_TA_Init();
// PWMB_TB_Init();
  while(1);
}


main.zip

643 Bytes, 下载次数: 44, 下载积分: 黑币 -5

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:255935 发表于 2018-9-27 13:33 | 只看该作者
我的一个项目中一用到PWM输出,要实时调控周期和脉宽,要命的是149的自动重载不能够实现,最后只好采用逻辑实现!
回复

使用道具 举报

板凳
ID:682335 发表于 2020-1-6 18:00 | 只看该作者
萌新想请教一下用pwm实现LED灯亮度变化,呼吸灯怎么搞
回复

使用道具 举报

地板
ID:495628 发表于 2021-4-26 16:16 | 只看该作者
coldwind 发表于 2020-1-6 18:00
萌新想请教一下用pwm实现LED灯亮度变化,呼吸灯怎么搞

输出的PWM占空比变化
回复

使用道具 举报

5#
ID:752151 发表于 2021-9-25 17:26 | 只看该作者
求助啊,我也是这么设置的但就是不行啊
回复

使用道具 举报

6#
ID:752151 发表于 2021-9-25 17:28 | 只看该作者
求助,我也是这样配置了,但就是不产生pwm信号啊;求大佬看看下,代码如下:
   P1DIR |= BIT0;
   P1SEL |= BIT0;

   TACCR0 = 800;  //100us = 0.125(1/8MHz)*800
   TACCR1 = 400;   //1:1
   TACCTL1 |= OUTMOD_7;
   TACTL |= ID_0 + MC_1 + TASSEL_2 + TACLR;
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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