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

📄 slope.c

📁 SP430C语言程序: 11-1的功能为利用MSP430的ADC12进行单通道单次转换
💻 C
字号:
/****************************************************************************
文件名:main.c
编写者:czhang
描述:用比较器A进行斜边AD转换模块。用于13xx 14xx 15xx 16xx系列。
      MCLK:DCO   ACLK:32.768kHz
版本:2005-4 V1.0
*****************************************************************************/
#include <msp430x14x.h>    
#include <math.h>
#include "slope.h"
#include "general.h"
#include "comparator.h"
#include "df_bh_timera.h"

#define RDIR P1DIR
#define ROUT P1OUT
#define REF BIT0

#define REF_ZHI 10	//参考电阻的阻值,单位为千欧
unsigned int time_ref;	//通过time_ref放电的时间
/****************************************************************************
斜边AD转换
返回值:电压值
*****************************************************************************/
float Slope()
{
	float fvin;
   unsigned int time_rse,time0,time1;	
   
	ROUT |= REF;  		//通过REF充电
	DelayMs(15);		//延时15ms
	ClearBuHuo();
	time0=TAR;
	ROUT &= ~REF;		//通过REF放电
	while(GetTime(&time1)==0); //读REF放电的时间
	time_rse=time1-time0;

	//计算电压值
	fvin=3.3*exp(((float)time_rse/time_ref)*(-1.3862944));
	return fvin;
}

/****************************************************************************
测量通过Rref放电时间
*****************************************************************************/
void CeRref()
{
	unsigned int time0,time1;
	//充电
	CompInitRef();		//初始化比较器A  
	CompOpen(100);		//打开比较器
	RDIR |= REF;		//通过REF充电
	ROUT |= REF;
	DelayMs(15);		//延时15ms
	ClearBuHuo();
	time0=TAR;
	//测通过REF放电时间
	ROUT &= ~REF;		//通过REF放电
	while(GetTime(&time1)==0); //读REF放电的时间
	time_ref=time1-time0;
	CompInitVin(); 		//初始化比较器A,准备进行AD转换  
	CompOpen(100);		//打开比较器
}

⌨️ 快捷键说明

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