📄 main.c
字号:
/****************************************************************************
* 文 件 名:main.c
* 功 能:通过KEY1操作,使用PWM5控制电机转速,共4档。
* 说 明:短接直流电机跳线JP17、JP18,独立按键JP11, LED跳线JP5 。
* 断开CF卡跳线JP13、GPIO接口J17,PS2跳线JP4。
****************************************************************************/
#include "config.h"
#define KEY 1<<20 // 定义按键
#define GPIOSET(PIN) IO1SET = PIN // 方便修改置位端口
#define GPIOCLR(PIN) IO1CLR = PIN // 方便修改清位端口
#define LEDCON 0x00ff0000 // LED控制字
/* PWM周期及占空比设置值 */
#define CYCLE_DATA 200000 // 定义周期
#define DUTY_CYCLE_DATA 50000 // 定义基本占空比参数
void DelayNS(uint32 dly);
/****************************************************************************
* 名称:main()
* 功能:主函数
****************************************************************************/
int main(void)
{ uint8 i = 0;
PINSEL1 = 0x01 << 10; // 设置PWM5连接到P0.21管脚
IO1DIR = LEDCON; // 配置LED控制I/O方向
PWMPR = 0x00; // 不分频,计数频率为Fpclk
PWMMCR = 0x02; // 设置PWMMR0匹配时复位PWMTC
PWMMR0 = CYCLE_DATA; // 设置PWM周期
PWMMR5 = DUTY_CYCLE_DATA; // 设置PWM占空比
PWMLER = 1 << 0 | 1<< 5; // PWMMR0、PWMMR5锁存
PWMPCR = 1 << 13; // 允许PWM5输出,单边PWM
PWMTCR = 0x09; // 启动定时器,PWM使能
GPIOSET(0xffffffff);
while(1)
{
PWMMR5 = DUTY_CYCLE_DATA*i; // 设置PWM占空比
PWMLER = 1 << 0 | 1<< 5; // PWMMR0、PWMMR5锁存
PWMTCR = 0x09; // 启动定时器,PWM使能
if( (IO0PIN&KEY) == 0 )
{
DelayNS(10);
if( (IO0PIN&KEY) == 0 )
{
i = i+1;
while( (IO0PIN&KEY) == 0 );
switch(i)
{
case 0x01:
GPIOSET(0xffffffff);
GPIOCLR(3<<16);
break;
case 0x02:
GPIOSET(0xffffffff);
GPIOCLR(3<<18);
break;
case 0x03:
GPIOSET(0xffffffff);
GPIOCLR(3<<20);
break;
case 0x04:
GPIOSET(0xffffffff);
GPIOCLR(3<<22);
break;
case 0x05:
GPIOSET(0xffffffff);
i = 0;
break;
default: break;
}
}
}
}
return(0);
}
/****************************************************************************
* 名 称:DelayNS()
* 功 能:长软件延时
* 入口参数:dly 延时参数,值越大,延时越久
* 出口参数:无
****************************************************************************/
void DelayNS(uint32 dly)
{ uint32 i;
for(; dly>0; dly--)
{
for(i=0; i<5000; i++);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -