📄 zu.c
字号:
/****************************************************************************
文件名:main.c
编写者:czhang
描述:适用比较器A测电阻值模块。用于13xx 14xx 15xx 16xx系列。
MCLK:DCO ACLK:32.768kHz
版本:2005-4 V1.0
*****************************************************************************/
#include <msp430xw42x.h>
//#include "general.h"
#include "comparator.h"
#include "df_bh_timera.h"
#include "zu.h"
#define RDIR P3DIR
#define ROUT P3OUT
#define REF BIT3 //参考电阻接 P3.3
#define RSEN BIT4 //被测电阻接 P3.4
#define REF_ZHI 0.986 //参考电阻的阻值,K欧姆
void DelayMs(void)
{
unsigned int k;
for (k=0;k<10000;k++){};
}
/****************************************************************************
测量电阻阻值
返回值:电阻值
*****************************************************************************/
float MeasureR()
{
unsigned int time_ref0,time_ref1,time_rsen0,time_rsen1,iq0,iq1;
float fr;
//充电
RDIR |= REF; //通过REF充电
ROUT |= REF;
DelayMs(); //延时15ms
//测REF放电时间
ClearBuHuo();
time_ref0=TAR;
ROUT &= ~REF; //通过REF放电
while(GetTime(&time_ref1)==0); //读REF放电的时间
iq1=time_ref1-time_ref0;
//充电
RDIR |= REF; //通过REF充电
ROUT |= REF;
DelayMs(); //延时15ms
//测RSEN放电时间
ClearBuHuo();
time_rsen0=TAR;
RDIR &= ~REF; //停止通过REF充电
ROUT &= ~RSEN; //通过RSEN放电
RDIR |= RSEN;
while(GetTime(&time_rsen1)==0); //读REF放电的时间
iq0=time_rsen1-time_rsen0;
RDIR &= ~RSEN; //停止放电
//计算电阻值
fr=(float)REF_ZHI*iq0;
fr=fr/iq1;
return fr;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -