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

📄 temperaturecontroller.cpp

📁 日本人设计的电子热水瓶的全部嵌入式源码,很好的实例
💻 CPP
字号:
////////////////////////////////////////////////////////
//	僼傽僀儖偺愢柧丗搾暒偐偟惂屼僋儔僗幚懱
////////////////////////////////////////////////////////
#include "Rtos.h"
#include "TemperatureController.h"

////////////////////////////////////////////////////////
//	僋儔僗丗搾暒偐偟惂屼僋儔僗
//	婡  擻丗僐儞僗僩儔僋僞
//			曄悢偺弶婜壔
//	堷  悢丗側偟
//	栠傝抣丗側偟
////////////////////////////////////////////////////////
TemperatureController::TemperatureController()
{
	this->waitTaskID = 0;
}

////////////////////////////////////////////////////////
//	僋儔僗丗搾暒偐偟惂屼僋儔僗
//	婡  擻丗惂屼廃婜庢摼
//			尰嵼愝掕偝傟偰偄傞惂屼廃婜傪庢摼偡傞
//	堷  悢丗側偟
//	栠傝抣丗惂屼廃婜
////////////////////////////////////////////////////////
SHORT TemperatureController::getControlPeriod()
{
	return this->controlPeriod;
}

////////////////////////////////////////////////////////
//	僋儔僗丗搾暒偐偟惂屼僋儔僗
//	婡  擻丗惂屼廃婜愝掕
//			惂屼廃婜傪愝掕偡傞
//	堷  悢丗惂屼廃婜
//	栠傝抣丗側偟
////////////////////////////////////////////////////////
VOID TemperatureController::setControlPeriod( SHORT ControlPeriod )
{
	this->controlPeriod = ControlPeriod;
}

////////////////////////////////////////////////////////
//	僋儔僗丗搾暒偐偟惂屼僋儔僗
//	婡  擻丗惂屼検愝掕
//			惂屼検傪亾偱愝掕偡傞丅
//			惂屼検偼惂屼廃婜偺娫偵僸乕僞乕傪俷俶偵偡傞帪娫偺妱崌
//	堷  悢丗惂屼検
//	栠傝抣丗側偟
////////////////////////////////////////////////////////
VOID TemperatureController::setControlRatio( SHORT ControlRatio )
{
	this->controlRatio = ControlRatio;
}

////////////////////////////////////////////////////////
//	僋儔僗丗搾暒偐偟惂屼僋儔僗
//	婡  擻丗惂屼検偺懸偪
//			惂屼検丄惂屼娫妘傪巊梡偟偰幚嵺偺僸乕僞乕惂屼傪偍偙側偆
//	堷  悢丗側偟
//	栠傝抣丗側偟
////////////////////////////////////////////////////////
VOID TemperatureController::waitControlPeriod()
{
	::get_tid( &this->waitTaskID );
	SHORT OnTime = this->controlPeriod * this->controlRatio / 100;	//僸乕僞乕 ON 偺帪娫
	SHORT OffTime = this->controlPeriod - OnTime;		//僸乕僞乕 OFF 偺帪娫
	if( OnTime )
	{
		this->pHeater->ActivateHeating();				// 僸乕僞乕 ON
		::dly_tsk( OnTime );							// ON 帪娫懸偮
	}
	if( OffTime )
	{
		this->pHeater->StopHeating();					// 僸乕僞乕 OFF
		::dly_tsk( OffTime );							// OFF 帪娫懸偮
	}
	this->waitTaskID = 0;
}

////////////////////////////////////////////////////////
//	僋儔僗丗搾暒偐偟惂屼僋儔僗
//	婡  擻丗惂屼検偺懸偪傪拞抐偡傞
//	堷  悢丗側偟
//	栠傝抣丗側偟
////////////////////////////////////////////////////////
VOID TemperatureController::breakWaitControlPeriod()
{
	if( this->waitTaskID )
	{
		::rel_wai( waitTaskID );
	}
}

////////////////////////////////////////////////////////
//	僋儔僗丗搾暒偐偟惂屼僋儔僗
//	婡  擻丗栚昗壏搙愝掕
//	堷  悢丗栚昗壏搙
//	栠傝抣丗側偟
////////////////////////////////////////////////////////
VOID TemperatureController::setTargetTemperature( SHORT TargetTemperature )
{
	this->targetTemperature = TargetTemperature;
}

////////////////////////////////////////////////////////
//	僋儔僗丗搾暒偐偟惂屼僋儔僗
//	婡  擻丗僙儞僒忣曬庢摼僆僽僕僃僋僩偺愝掕
//			偙偺僆僽僕僃僋僩偑巊梡偡傞僙儞僒忣曬僆僽僕僃僋僩傪愝掕偡傞
//	堷  悢丗栚昗壏搙
//	栠傝抣丗側偟
////////////////////////////////////////////////////////
VOID TemperatureController::setSensorInfo( SensorInfo * SensorInfoObj )
{
	this->pSensorInfo = SensorInfoObj;
}

////////////////////////////////////////////////////////
//	僋儔僗丗搾暒偐偟惂屼僋儔僗
//	婡  擻丗僸乕僞乕僆僽僕僃僋僩偺愝掕
//			偙偺僆僽僕僃僋僩偑巊梡偡傞僸乕僞乕僆僽僕僃僋僩傪愝掕偡傞
//	堷  悢丗栚昗壏搙
//	栠傝抣丗側偟
////////////////////////////////////////////////////////
VOID TemperatureController::setHeater( HeaterController * HeaterObj )
{
	this->pHeater = HeaterObj;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -