标题:
基于msp430f5529的PWM波控制程序
[打印本页]
作者:
gysworld
时间:
2020-12-28 17:44
标题:
基于msp430f5529的PWM波控制程序
///*
// *
// * 按钮调节PWM占空比
// *
// /*
#include <msp430f5529.h>
int pwm = 32; //给pwm附一个初始值
volatile unsigned int flag =0; //优化赋值初始值flag=0
void Keyscan(); //键盘扫描
int main(void)
{
WDTCTL = WDTPW + WDTHOLD; // 关闭看门狗
P1DIR |= BIT2; //设置1.2输出波
P1SEL |= BIT2;
P4DIR |= BIT7; //灯LED2
P4OUT &=~BIT7;
P2OUT |= BIT1; //按钮S1
P2REN |= BIT1;
TA0CCR0 = 64; //PWM周期定义
TA0CTL = TASSEL_1 + MC_1 + TACLR; //参考时钟选择ACLK,增计数模式,清除TAR计数器
while(1)
{
Keyscan();
if(flag!=0) //当flag不等于0时
{
P4OUT |= BIT7; //4.7LED灯亮,高电平
}
else
{
P4OUT &=~ BIT7;
}
TA0CCTL1 = OUTMOD_7; //CCR1比较输出模式7:复位,定位。
TA0CCR1 =pwm; //pwm占空比的定义,随pwm的变化,占空比不同
}
}
void Keyscan()
{
if((P2IN&BIT1) ==0)
{
__delay_cycles(10000);
if((P2IN& BIT1)==0)
{
while((P2IN& BIT1)==0)
{
flag = ~flag; //取反
}
pwm = pwm-2; //先接示波器上看,占空比上升沿所占时间,启动的时候要低于1ms,然后按按钮,让占空比上升沿时间在1~2ms内
//超过2ms,不转,低于1ms也停转。
}
}
}
复制代码
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1