⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 speed.c

📁 基于SPCE061A的出租车计价器
💻 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 + -