?? 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 + -