程序一:
#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
推荐阅读最新更新时间: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);// 使能定时器时钟
[单片机]
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
[单片机]
有刷直流电机使用H桥电路PWM驱动的方法
本文介绍有刷直流电机使用H桥电路进行PWM驱动时的两个典型示例。 ①将PWM信号输入至两个输入引脚之一并直接驱动 在“通过H桥电路驱动有刷直流电机:输出状态的切换”中介绍了通过H桥电路驱动电机时,可以利用两个逻辑输入在4种状态(停止,正转,反转,制动)之间进行切换。第一种PWM驱动方法是将PWM信号输入至这两个输入引脚之一。 这是某款有刷直流电机驱动器IC的框图。使用IN1和IN2逻辑切换H桥。 两个真值表的左侧是标准的切换逻辑。其中,将正转(H/L)和反转(L/H)的H输入用作PWM输入。参见右侧的真值表。 这就是停止(OPEN)、正转PWM驱动、反转PWM驱动和制动。在这种控制中,需要将逻辑信号和PWM信号从微控制器等
[嵌入式]
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是电源电压。电机的转速与电机两端的电压成比例,而电机两端的电压与控制波形的占空比成正比,因此电机的速度与占空比成比例,占空
[应用]