输出方波(p1.2,1.3为输出):
#include "driverlib.h"
void main (void)
{
WDTCTL =WDTPW +WDTHOLD;//看门狗
//p1.2, 1.3-输出
P1DIR |=BIT2+BIT3;
P1SEL = BIT2+BIT3;
TA0CCR0=512-1;
TA0CCTL1=OUTMOD_7;//TA0CCTL1的输出模式
TA0CCR1=384;
TA0CCTL2=OUTMOD_7;/TA0CCTL2的输出模式
TA0CCR2=128;
TA0CTL=TASSEL_2+MC_1+TACLR;//SMCLK时钟源,增计数模式
}
按键调控PWM波占空比
思路:
1、配置按键的GPIO口(1.1,2.1),将其设置为输入
2、配置p1.2 , 1.3,将其设置为输出
3、配置定时器,设置相应的模式
4、不断地读取按键的状态并用LED灯显示出相应状态
#include "driverlib.h"
#define p1_2 TA0CCR1//p1.2占空比计数
#define p1_3 TA0CCR2//p1.3占空比计数
void main (void)
{
//看门狗
WDTCTL = WDTPW|WDTHOLD;
//按键-输入
GPIO_setAsInputPinWithPullUpResistor(GPIO_PORT_P2,GPIO_PIN1);//p2.1为输入,上拉S1
GPIO_setAsInputPinWithPullUpResistor(GPIO_PORT_P1,GPIO_PIN1);//p1.1为输入,上拉S2
//p1.2, 1.3-输出
P1DIR |=BIT2+BIT3;
P1SEL = BIT2+BIT3;//p1.2, 1.3复用输出PWM
//定时器TA0
unsigned PWM=2000;//设置周期函数
TA0CCR0=PWM;//设置PWM周期
TA0CTL=TASSEL_2 + MC_1 + TACLR;//SMCLK时钟源,增计数模式
TA0CCR1=1500;
TA0CCTL1=OUTMOD_7;//TA0CCTL1的输出模式
TA0CCR2=500;
TA0CCTL2=OUTMOD_7;//TA0CCTL2的输出模式
p1_2=1500;//p1.2占空比
p1_3=500;//p1.3占空比
GPIO_setAsOutputPin(GPIO_PORT_P1,GPIO_PIN0);//LED1:p1,0为输出
GPIO_setAsOutputPin(GPIO_PORT_P4,GPIO_PIN7);//LED2:p4,7为输出
GPIO_setOutputLowOnPin(GPIO_PORT_P1,GPIO_PIN0);//LED1熄灭:p1,0为输出低电平
GPIO_setOutputHighOnPin(GPIO_PORT_P1,GPIO_PIN0);//LED1点亮:p1,0为输出高电平
GPIO_setOutputLowOnPin(GPIO_PORT_P4,GPIO_PIN7);//LED2熄灭:p4,7为输出低电平
GPIO_setOutputHighOnPin(GPIO_PORT_P4,GPIO_PIN7);//LED2点亮:p4,7为输出高电平
while(1)
{
if((GPIO_INPUT_PIN_LOW==GPIO_getInputPinValue(GPIO_PORT_P2,GPIO_PIN1)) || (GPIO_INPUT_PIN_LOW==GPIO_getInputPinValue(GPIO_PORT_P1,GPIO_PIN1)))
{
__delay_cycles(5000);//延时
if(GPIO_INPUT_PIN_LOW==GPIO_getInputPinValue(GPIO_PORT_P2,GPIO_PIN1))
{
while((GPIO_INPUT_PIN_LOW==GPIO_getInputPinValue(GPIO_PORT_P2,GPIO_PIN1)));//等待按键释放
TA0CCR1=p1_2-400;//改变1.2引脚的输出占空比
GPIO_toggleOutputOnPin(GPIO_PORT_P1,GPIO_PIN0);//取反1,0引脚的输出
}
if(GPIO_INPUT_PIN_LOW==GPIO_getInputPinValue(GPIO_PORT_P1,GPIO_PIN1))
{
while(GPIO_INPUT_PIN_LOW==GPIO_getInputPinValue(GPIO_PORT_P1,GPIO_PIN1));//等待按键释放
TA0CCR2=p1_3+400;//改变1.3引脚的输出占空比
GPIO_toggleOutputOnPin(GPIO_PORT_P4,GPIO_PIN7);//取反4,7引脚的输出
}
}
__delay_cycles(10000);//延时
}
}