?? pwm_driver.c
字號(hào):
/****************************************************************************
* 文 件 名:PWM_Driver.c
* 版 本: V1.0
* 連 接:
* 功 能:PWM驅(qū)動(dòng)函數(shù)os版本,使用FIQ中斷
* 作者:黃振升
* 日期:2007/8/20
*---------------歷史版本信息-------------------------------------------------
* 修 改 人: 黃振升
* 版 本:
* 日 期: 2007/8/20
* 描 述:
****************************************************************************/
/***********************************************************************
包含文件
***********************************************************************/
#include "config.h"
#define INIT_FREQUENCY 3000 //原始PWM拼率值
#define INIT_DUTY 100 //原始占空比
/***********************************************************************
* 名 稱(chēng):void IRQ_SPS()
* 功 能:PWM中斷服務(wù)程序
* 入口參數(shù):
* 出口參數(shù):
* 說(shuō)明 :試用
***********************************************************************/
void IRQ_SPS(void)
{
//while(0);
PWMIR = 0x01;
}
/***********************************************************************
* 名 稱(chēng):void PWM_Init(void)
* 功 能:PWM初始化函數(shù)
* 入口參數(shù):
* 出口參數(shù):
* 說(shuō)明 :使能一個(gè)通道單邊沿輸出
***********************************************************************/
void PWM_Init(void)
{
/***********************************************************************
通用部分
***********************************************************************/
PINSEL0 = (PINSEL0&~(0x3F<<14))|(0X2A<<14); //使用PWM2,4,6
PWMPR = 0x00; //不分頻
PWMMCR = 0x03; //PWMMR0與PWMTC匹配復(fù)位PWMTC,PWMMR1與PWMTC匹配產(chǎn)生中斷
/***********************************************************************
差別部分
***********************************************************************/
PWMPCR |= 1<<10; //PWM2單邊沿輸出
PWMMR0 = Fpclk /INIT_FREQUENCY; //頻率初值為10000
PWMMR2 = (uint32)(PWMMR0 /INIT_DUTY); //占空比為0.01
PWMLER = 0x7f; //匹配輸出
/***********************************************************************
中斷初始化
***********************************************************************/
PWMIR = 0x01;
VICIntSelect = 1 << 0x08;
VICIntEnable = 1 << 0x08; //使能PWM中斷
/***********************************************************************
通用部分
***********************************************************************/
PWMTCR = 0x02; //復(fù)位PWMTC
PWMTCR = 0x09; //啟動(dòng)PWM輸出
}
/***********************************************************************
* 名 稱(chēng): void FC_Stop(void )
* 功 能:變頻器停止
* 入口參數(shù):無(wú)
* 出口參數(shù): 無(wú)
* 說(shuō) 明: 無(wú)
***********************************************************************/
void PWM_Stop(void)
{
PINSEL0 = (PINSEL0&~(0x3F<<14)); //變回GPIO
IO0DIR = IO0DIR|(3<<7);
IO0CLR = IO0CLR |(3<<7);
IO0SET = IO0SET |(1<<21);
PWMMCR = 0;
PWMPCR = 0;
PWMTCR = 0;
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -