?? speed.c
字號:
//======================================================
// 文件名稱: Speed.c
// 功能描述: 速度模擬(PWM波產生控制)程序
// 維護記錄: 2006-10-12 v1.0 by lijian
//======================================================
#include "Speed.h"
#define DEFAULT_SPEED 0xffd0 // 默認速度(TimerB的默認計數初值)
#define MAX_SPEED 0xfff0 // 最大速度(TimerB的最大計數初值)
#define MIN_SPEED 0xff00 // 最小速度(TimerB的最小計數初值)
unsigned int uiCurSpeed; // 當前速度(TimerB的當前計數初值)
//=============================================================
// 語法格式: void Speed_Init(void)
// 實現功能: 速度模擬初始化
// 參數: 無
// 返回值: 無
//=============================================================
void Speed_Init(void)
{
uiCurSpeed = 0;
*P_IOB_Dir |= C_Bit9;
*P_IOB_Attrib |= C_Bit9;
*P_IOB_Buffer &= ~C_Bit9;
*P_TimerB_Ctrl = C_TMA1_0 + C_TMA_PWM_OFF;
}
//=============================================================
// 語法格式: void Speed_Start(void)
// 實現功能: 啟動速度模擬
// 參數: 無
// 返回值: 無
//=============================================================
void Speed_Start(void)
{
uiCurSpeed = DEFAULT_SPEED;
// *P_TimerB_Data = 65535 - (6144 / Speed_GetFreq(DEFAULT_SPEED)) + 1;
*P_TimerB_Data = uiCurSpeed;
*P_TimerB_Ctrl = C_TMA1_FOSC_256 + C_TMA_PWM_D8;
}
//=============================================================
// 語法格式: void Speed_Stop(void)
// 實現功能: 停止速度模擬
// 參數: 無
// 返回值: 無
//=============================================================
void Speed_Stop(void)
{
*P_TimerB_Ctrl = C_TMA1_0;
}
//=============================================================
// 語法格式: void Speed_Stop(int uiStep)
// 實現功能: 加速
// 參數: uiStep - 速度調整步進
// 返回值: 無
//=============================================================
void Speed_Up(int uiStep)
{
uiCurSpeed += uiStep;
if(uiCurSpeed >= MAX_SPEED)
uiCurSpeed = MAX_SPEED;
// *P_TimerB_Data = 65535 - (6144 / Speed_GetFreq(uiCurSpeed)) + 1;
*P_TimerB_Data = uiCurSpeed;
*P_TimerB_Ctrl = C_TMA1_FOSC_256 + C_TMA_PWM_D8;
}
//=============================================================
// 語法格式: void Speed_Down(int uiStep)
// 實現功能: 減速
// 參數: uiStep - 速度調整步進
// 返回值: 無
//=============================================================
void Speed_Down(int uiStep)
{
uiCurSpeed -= uiStep;
if(uiCurSpeed <= MIN_SPEED)
uiCurSpeed = MIN_SPEED;
if(0 == uiCurSpeed)
{
*P_TimerB_Ctrl = C_TMA1_0;
}
else
{
// *P_TimerB_Data = 65535 - (6144 / Speed_GetFreq(uiCurSpeed)) + 1;
*P_TimerB_Data = uiCurSpeed;
*P_TimerB_Ctrl = C_TMA1_FOSC_256 + C_TMA_PWM_D8;
}
}
//=============================================================
// 語法格式: unsigned int Speed_GetSpeed(void)
// 實現功能: 得到當前速度
// 參數: 無
// 返回值: 速度值
//=============================================================
unsigned int Speed_GetSpeed(void)
{
return uiCurSpeed;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -