📄 main.c
字号:
#include "config.h"
#define KEY1 0x00004000 //P0.14接KEY1
#define KEY2 0x00008000 //P0.15接KEY2
#define KEY 0x0000c000 //未有键按下
uint8 flag;
void Init(void);
/*名称:WaitKey()
*等待一个有效按键,包含去拌功能*/
void WaitKey(void)
{
uint32 i;
while(1)
{
while((IOPIN&KEY)==KEY);
for(i=0;i<50;i++);
if((IOPIN&KEY)!=KEY)
{
if((IOPIN&KEY)==KEY2) //按键1按下
flag=1;
if((IOPIN&KEY)==KEY1) //按键2按下
flag=0;
break;
}
break;
}
while((IOPIN&KEY)!=KEY);
}
/*名称:main()
*功能:使用PWM6输出占空比可调的PWM波形*/
int main(void)
{
uint32 pwmdata;
PINSEL0=0x00080000;
PINSEL1=0x00000000;
IODIR=0x0;
Init(); //PWM初始化
pwmdata=1000;
while(1)
{
PWMMR0=3000; //设置PWM周期
PWMMR6=pwmdata; //设置PWM占空比
PWMLER=0x41; //更改的值下一次定时器复位时生效
WaitKey(); //等待按键
if(flag==1)
{
pwmdata+=100; //改变占空比变量
flag=3;
}
if(flag==0)
{
pwmdata-=100;
flag=3;
}
if(pwmdata<=1)
pwmdata=3000;
if(pwmdata>=3000)
pwmdata=0;
}
return(0);
}
/*名称:TargetInit(void)
*功能:目标板初始化*/
void Init(void)
{
PWMPR=0x00; //不分频,计数频率为Fpclk
PWMMCR=0x02; //PWMMR0匹配时复位PWMTC
PWMMR0=3000; //PWM周期
PWMMR6=1000; //PWM占空比
PWMLER=0x41; //更改的值下一次定时器复位时生效
PWMPCR=0x4000; //允许PMW6单边沿控制
PWMTCR=0x09; //PWM使能,启动计数器
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -