CC2530————按键实现PWM(呼吸灯)

#include <ioCC2530.h>
#define uint unsigned int
#define uchar unsigned char
#define LED1 P1_0
#define key P1_2

void Delay(uint time)
{
while(time–);
}
void InitLED(void)
{
P1SEL&=~0x39;
P1DIR |= 0x39;
P1&=~0x39;
}

void InitKey()
{
P1SEL &= ~0x04;
P1DIR &= ~0X04;
P1INP &= ~0x04;
}

void main (void)
{
uint CYCLE=600,PWM_LOW=0;
uchar flag=0;
InitLED();
InitKey();
while (1)
{ //按下
if(key0)
{
PWM_LOW++;
flag=1;
//设置最大范围
if(PWM_LOW>CYCLE)
{
PWM_LOW=CYCLE-1;
}
}
//松开
else
{
PWM_LOW–;
//设置最小范围
if(PWM_LOW<1)
{
PWM_LOW=1;
}
}
//三种工作方式
if(PWM_LOW
CYCLE-1)
LED1=1;
else if(PWM_LOW1)
LED1=0;
else if(CYCLE>PWM_LOW)
{
if(flag
1)
{
LED1=1;
Delay(PWM_LOW);
LED1=0;
Delay(CYCLE-PWM_LOW);
}
}
}
}

猜你喜欢

转载自blog.csdn.net/News53231323/article/details/113244459