📄 measurement_module.c
字号:
/*===========================================================================
* 2006年。三星仪表SOC芯片开发项目
*
*
* 文件名称:Measurement_Module.c
* 文件标识:
* 摘 要: 系统电压测量(Vsw),电池电压测量(Vbat),温度测量(T)
*
*
* 当前版本:Ver 1.0
* 作 者:罗冬生
* 修改内容:
* 修改日期:
* 完成日期:
===============================================================================================*/
#ifndef _Measurement_Module_
#define _Measurement_Module_
//===============================================================================================
#include "includes.h"
//===============================================================================================
__idata unsigned int TEMP;
__idata unsigned int VBAT;
__idata unsigned int VSW;
#pragma vector=0x33
__interrupt void TEMPERATURE_ISR(void)
{
TEMP_Flg = 1; // 置温度变化超过1.6度标志,要对一些参数进行温度补偿
// Temperature = TEMPADC;//<<3;
}
//------------------------------------------------------------------------------------------------
void MeasurementInit(void)
{
STRBPER = 0;//x0F; //Vbat,Temp,设定为1min的周期采样,VSW为实时采样
DIFFPROG = 0;//x27; //温度Temp测量设定为1.6度报警,Vsw电压一次A/D转换后产生一个报警事件。
//BATVTH = 0x92; //电池电压满量程3840mv(256*15),电池报警门槛电压设为2.2v,则对应值146
IPSME_bit.EBAT = 0; //电池电压只报警,不中断
IPSME_bit.EVSW = 0; // Vsw电压实时采样,采样完成后输出报警事件但不产生中断
IP_bit.PTEMP = 0; // 温度报警并中断优先级为低级
IE_bit.ETEMP = 1; // 温度报警并允许中断
ADCGO_bit.VSW_ADC_GO = 1; // 启动一次A/D转换,启动VSW采样
}
//---------------------------------------------------------------------------------------------------------
// 一分钟运行的程序在此模块中处理。如电池电压测量,温度测量,编程允许计时,
void MeasurementModule(void) //每一秒钟运行一次
{
if (TEMP_Flg)
{
TEMP_Flg = 0;
TEMP = (unsigned int)TEMPADC; //温度实际值 = 采样值*0.664-67.17
TEMP = Hex16BCD(TEMP) ; //读取温度值,进行一些温度补偿运算
}
if (IPSMF_bit.FVSW)
{
IPSMF_bit.FVSW = 0;
VSW = VSWADC;
VSW = Hex16BCD(15*VSW); //读取Vsw电压值,并乘一个系数15mv/LBS
// ADCGO_bit.VSW_ADC_GO = 1; //启动下一次A/D转换
}
else
{
ADCGO_bit.VSW_ADC_GO = 1; //启动下一次A/D转换
}
// TEMP = Hex2BCD(TEMPADC) ; //读取测量温度值并转换成BCD码
VBAT = BATADC;
VBAT = Hex16BCD(15*VBAT); //读取电池电压值,并乘一个系数15mv/LBS
}
//===============================================================================================
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -