4356|10

12

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

小弟请教此程序 pwm 控制灯亮度为啥不好使 [复制链接]

#include "msp430g2553.h"
void main( void )
{
  WDTCTL = WDTPW + WDTHOLD;                                 //关看门狗
  TACTL=TASSEL_1+TACLR+MC_1;                                    //ACLK为时钟源,清TAR,增计数模式
  TACCR0=512-1;                                 //设定PWM周期
  TACCTL1=OUTMOD_7;                                       //CCR1输出为reset/set模式
  TACCR1=55584;                                   //CCR1的PWM占空比设定
  TACCTL2=OUTMOD_7;                                      //CCR2输出为reset/set模式
  TACCR2=28;                                   //CCR2的PWM占空比设定
  P1DIR|=BIT0 + BIT6;                                   //P1.2、P1.3输出,对应TA1,TA2
  P1SEL|=BIT0 + BIT6;                                  //TA1,TA2输出功能
  while(1);
}

最新回复

那个25%占空比的用示波器怎么是40%几;改变占空比也不行  详情 回复 发表于 2012-7-23 15:40

点评

给你个例程,这个我用过 没有问题 #include void main(void) { WDTCTL =WDTPW+ WDTHOLD; //停止看门狗定时器 P1DIR |= 0x0C; //设P1.2 和P1.3 为输出 P1SEL |= 0x0C; //设P1.2 和P1.3 TA1/2 为模块功能 CCR  详情 回复 发表于 2012-7-16 08:22
我试了试 没找到TA0.2的输出口:) :) :) 换成TA1.用示波器测试的是对的 #include \"msp430g2553.h\" void main( void ) { WDTCTL = WDTPW + WDTHOLD; //关看门狗 TA1CTL=TASSEL_1+TACLR+MC_1; //ACLK为时钟  详情 回复 发表于 2012-7-15 14:17
 
点赞 关注

回复
举报

12

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
坐等
 
 

回复

3404

帖子

6

TA的资源

裸片初长成(初级)

板凳
 
把问题说详细点儿啊!不好使是哪儿不好啊!
 
 
 

回复

29

帖子

0

TA的资源

一粒金砂(中级)

4
 
TACCR1=55584; //CCR1的PWM占空比设定
55584太大了
 
 
 

回复

18

帖子

0

TA的资源

一粒金砂(中级)

5
 
/***************************
     UP MODE
  PWM控制小灯亮度
author:279827164
****************************/

#include "msp430g2553.h"
#define uint unsigned int
#define uchar unsigned char
volatile uchar flag,dir;  
volatile uint t0,t1;  //高低电平计数个数

void main( void )
{
  // Stop watchdog timer to prevent time out reset
  WDTCTL = WDTPW + WDTHOLD;
  t0 = 100;
  TACTL |= TASSEL1 + MC_1; //UP to CCR0,SMCLK
  CCTL0 |= CCIE;      //比较中断使能
  CCR0 = 100 ;     
  
  P1DIR |= BIT2 + BIT0;
  
  __enable_interrupt();
  for(;;)
  {
      if(flag == 2)
      {
        flag = 0;
      }
  }

  
}

#pragma vector = TIMER0_A0_VECTOR

__interrupt void up_to_CCR0(void)
{
  P1OUT ^= BIT2;
  
  if(flag == 0)   //高电平
  {
    t1 = 1200 - t0;     //总周期1200
    CCR0 = t1;
  }
  else      //低电平
  {
    CCR0 = t0;
      if(t0 == 1100)      //高电平计时个数最大值
    {
      dir = 1;  
    }
    else if(t0 == 100)    //最小值
    {
      dir = 0;
    }
    if(dir == 0)
    {
      t0++;
    }
    else
    {
      t0--;
    }
  }
  flag ++;
}
 
 
 

回复

19

帖子

0

TA的资源

一粒金砂(中级)

6
 

回复 楼主 hit棠 的帖子

我试了试 没找到TA0.2的输出口   
换成TA1.用示波器测试的是对的
#include "msp430g2553.h"
void main( void )
{
WDTCTL = WDTPW + WDTHOLD; //关看门狗
TA1CTL=TASSEL_1+TACLR+MC_1; //ACLK为时钟源,清TAR,增计数模式
TA1CCR0=2000; //设定PWM周期
TA1CCTL1=OUTMOD_7; //CCR1输出为reset/set模式
TA1CCR1=1000; //CCR1的PWM占空比设定
TA1CCTL2=OUTMOD_7; //CCR2输出为reset/set模式
TA1CCR2=1500; //CCR2的PWM占空比设定
P2DIR|=BIT1 + BIT4; //P2.1、P2.4输出,对应TA1.1,TA1.2
P2SEL|=BIT1 + BIT4; //对应TA1.1,TA1.2
while(1);
}
 
 
 

回复

7

帖子

0

TA的资源

一粒金砂(初级)

7
 
_EINT();没写?
 
 
 

回复

33

帖子

0

TA的资源

一粒金砂(中级)

8
 

回复 楼主 hit棠 的帖子

给你个例程,这个我用过 没有问题
#include
void main(void)
{
WDTCTL =WDTPW+ WDTHOLD; //停止看门狗定时器
P1DIR |= 0x0C; //设P1.2 和P1.3 为输出
P1SEL |= 0x0C; //设P1.2 和P1.3 TA1/2 为模块功能
CCR0 = 512-1; //装入PWM 周期值
CCTL1 = OUTMOD_7; //设CCR1输出单元为复位/置位输出模式
CCR1 = 384; //装入CCR1 PWM的占空值
CCTL2 = OUTMOD_7; //设CCR2输出单元为复位/置位输出模式
CCR2 = 128; //装入CCR2 PWM 的占空值
TACTL = TASSEL_1 + MC_1; //时钟源选择ACLK, 定时器A 增计数模式
_BIS_SR(LPM3_bits); //进入LPM3 低功耗模式
}

希望有帮助

点评

那个25%占空比的用示波器怎么是40%几;改变占空比也不行  详情 回复 发表于 2012-7-23 15:40
:titter: 哦 #include \"msp430x14x.h\"  详情 回复 发表于 2012-7-16 08:25
 
 
 

回复

33

帖子

0

TA的资源

一粒金砂(中级)

9
 

回复 8楼 jia0606080223 的帖子

哦 #include "msp430x14x.h"
 
 
 

回复

119

帖子

5

TA的资源

一粒金砂(中级)

10
 
注意占空比
 
个人签名每天早上叫醒我的不是闹钟 ,而是梦想
 
 

回复

11

帖子

0

TA的资源

一粒金砂(中级)

11
 

回复 8楼 jia0606080223 的帖子

那个25%占空比的用示波器怎么是40%几;改变占空比也不行
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表