MSP430之Timer_A之典型应用——PWM

发布者:真诚友爱最新更新时间:2015-10-26 来源: eefocus关键字:MSP430  Timer_A  PWM 手机看文章 扫描二维码
随时随地手机看文章
程序一:
#include "msp430x14x.h"
void main( void )
{
  WDTCTL WDTPW WDTHOLD;        //关看门狗
  TACTL=TASSEL0+TACLR+MC0;           //ACLK为时钟源,清TAR,增计数模式
  TACCR0=512-1;                                //设定PWM周期
  TACCTL1=OUTMOD_7;                      //CCR1输出为reset/set模式
  TACCR1=384;                                   //CCR1的PWM占空比设定
  TACCTL2=OUTMOD_7;                      //CCR2输出为reset/set模式
  TACCR2=128;                                   //CCR2的PWM占空比设定
  P1DIR|=0X0c;                                   //P1.2、P1.3输出,对应TA1,TA2
  P1SEL|=0X0c;                                  //TA1,TA2输出功能
  while(1);
}
功能:P1.2,P1.3分别输出TA1,TA2的pwm信号,通过杜邦线接两个led,
         可观察到不同占空比的pwm效果。一个亮些,一个暗些。

程序二:

void main( void )
{
  // Stop watchdog timer to prevent time out reset
  WDTCTL WDTPW WDTHOLD;
  
  TBCTL=TBSSEL_2+TBCLR+MC0;   //SMCLK(800K),增模式
  TBCCTL1=OUTMOD_3;           //置位/复位模式
  TBCCR0=8000;                //PWM周期
  TBCCR1=0;                   //PWM的低电平时间
  
  P4DIR=0X02;            //P4.1输出,P4.1受TBCCR1控制
  P4SEL=0X02;            //P4.1作为定时器B的PWM输出
  P1DIR=0XFC;            //P1.0 P1.1输入
  P1IE=0X03;             //允许中断P1.1和P1.2
  P1IES=0XFC;            //上升沿中断
  
  _EINT();
  while(1);
}

#pragma vector=PORT1_VECTOR
__interrupt void PORT_INTERRUPT(void)
{
  uint i;
  for(i=8000;i>0;i--);    //延时,去抖
  if(P1IFG&BIT0)
  {
    if(TBCCR1>=8000)    
    {
      TBCCR1=1000;     
    }
    else
    {
      TBCCR1=TBCCR1+1000;    
    }
  }
  if(P1IFG&BIT1)
  {
  if(TBCCR1<1000)
  {
    TBCCR1=8000;
  }
  else
  {
    TBCCR1=TBCCR1-1000;
  }
  }
  P1IFG=0X00;     //消除按键中断标志
}
功能:通过P4.1外接一个led灯
        430板子的key1,key2调节亮度。一个增,一个减 
关键字:MSP430  Timer_A  PWM 引用地址:MSP430之Timer_A之典型应用——PWM

上一篇:语音播报超声波测距程序
下一篇:MSP430开发重点总结

推荐阅读最新更新时间:2024-03-16 14:37

MSP430G2转换结果数据类型
以下是程序,软件用的IAR: #include io430.h #include dandao_duocai.h #define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0)) #define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0)) #define dataout P2OUT unsigned int ADC10_Result ; int d,c; void cheek_clock() { BCSCTL3_bit.LFXT1S0 = 0; //配置ACLK为12KHz BCSCT
[单片机]
基于DSP的空间电压矢量PWM技术研究与实现
1 引言 近年来,在高性能全数字控制的电气传动系统中,作为电力电子逆变技术的关键,PWM技术从最初追求电压波形正弦,到电流波形正弦,再到磁通的正弦,取得了突飞猛进的发展[1]。在众多正弦脉宽调制技术中,空间电压矢量PWM(或称SVPWM)是一种优化的PWM技术,能明显减小逆变器输出电流的谐波成分及电机的谐波损耗,降低脉动转矩,且其控制简单,数字化实现方便,电压利用率高,已有取代传统SPWM的趋势。本文对空间电压矢量PWM的原理进行了深入分析,重点推导了每一扇区开关矢量的导通时间,并在TI公司生产的DSP上实现三相逆变器的控制,证明了分析的正确和可行性。 2 空间电压矢量PWM原理 图1为三相电压源逆变器示意图,Sa、Sb、Sc为逆
[嵌入式]
pwm互补输出 死区设置
void TIM8_PWM_Init(u16 arr,u16 psc) { GPIO_InitTypeDef GPIO_InitStructure; TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_OCInitTypeDef TIM_OCInitStructure; NVIC_InitTypeDef NVIC_InitStructure; TIM_BDTRInitTypeDef TIM_BDTRInitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM8, ENABLE);// 使能定时器时钟
[单片机]
<font color='red'>pwm</font>互补输出 死区设置
MSP430第五章:统一时钟系统
1.介绍 通用时钟系统(UCS)可以让用户在性能与功耗中寻找最佳平衡点,允许用户在外部只有晶振的条件下纯软件配置,其包含5个时钟源: XT1CLK:低频/高频振荡器,可以使用32768HZ手表晶振、标准晶振、谐振器、4-32MHZ外部时钟源 VLOCLK:内部低功耗低频时钟,典型值10KHZ。 REFOCLK:内部32768HZ手表晶振,可用作FLL的参考时钟。 DCOCLK:内部数控振荡器(DCO),可被FLL稳定。 XT2CLK:可选高频振荡器,可用作标准振荡器,共振器、4-32MHZ外部时钟源,也可用作FLL的参考时钟。 3个可用时钟信号: ACLK:辅助时钟,ACLK可被软件选用源于XT1CLK, REFOCL
[单片机]
<font color='red'>MSP430</font>第五章:统一时钟系统
有刷直流电机使用H桥电路PWM驱动的方法
本文介绍有刷直流电机使用H桥电路进行PWM驱动时的两个典型示例。 ①将PWM信号输入至两个输入引脚之一并直接驱动 在“通过H桥电路驱动有刷直流电机:输出状态的切换”中介绍了通过H桥电路驱动电机时,可以利用两个逻辑输入在4种状态(停止,正转,反转,制动)之间进行切换。第一种PWM驱动方法是将PWM信号输入至这两个输入引脚之一。 这是某款有刷直流电机驱动器IC的框图。使用IN1和IN2逻辑切换H桥。 两个真值表的左侧是标准的切换逻辑。其中,将正转(H/L)和反转(L/H)的H输入用作PWM输入。参见右侧的真值表。 这就是停止(OPEN)、正转PWM驱动、反转PWM驱动和制动。在这种控制中,需要将逻辑信号和PWM信号从微控制器等
[嵌入式]
有刷直流电机使用H桥电路<font color='red'>PWM</font>驱动的方法
MSP430矩阵式按钮驱动程序
#include msp430x14x.h unsigned char LineScan ={0xef,0xdf,0xbf,0x7f}; //列值列举 void ADD() { P4OUT+=1; } void SUB() { P4OUT-=1; } unsigned int key_check(void) //检测是否有按键按下 { unsigned char temp; P1DIR=0xf0; //定义P1.4~P1.7为输出 temp=P1IN & 0x0f; if(temp!=0x0f) return 1; else return 0; } unsig
[单片机]
基于MSP430自动胀管控制器的研制
  胀管机是针对冷凝器、冷油器、加热器、换热器中各类管材与管板胀接需要而设计开发的一种专用设备。其控制器的基本原理是用驱动电机(又称驱动马达、胀管机头)的工作电流来标定所加载的负荷,即驱动电机在一定的工作电流值下,提供相当数量的扭矩,而与之相当数量的扭矩可以通过旋转胀管器产生一定的膨胀量(胀力),它是可以被测量的。因此,通过精确测量并控制驱动马达的工作电流值,就可获得并控制所需要的膨胀量(胀力)。   目前,市场上大多数的胀管机采用51单片机,但其缺点比较突出。如内部无存储器,必需外接Flash或EPROM存储设置信息,这就导致电路比较复杂,不利于扩展,且工作电压范围较窄,抗干扰能力较差。而采用MSP430F149单片机的胀管机
[单片机]
一种基于Intel8253与L298N的电机PWM调速方法
摘要:介绍采用Intel8253型微型计算机接口电路产生脉冲宽度调制波,并使用L298N型桥式驱动器,实现对直流电机的一种简单有效的PWM调速方法。 关键词:Intel8253; L298N: 脉冲宽度调制:PWM 1 引言 脉冲宽度调制(Pulse Width Modulation—PWM)是指将输出信号的基本周期固定,通过调整基本周期内工作周期的大小来控制输出功率。原理就是开关管在一个周期内的导通时间为t,周期为T,则电机两端的平均电压U=Vcc t/T=aVcc。其中,a=t/T(占空比),Vcc是电源电压。电机的转速与电机两端的电压成比例,而电机两端的电压与控制波形的占空比成正比,因此电机的速度与占空比成比例,占空
[应用]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved