?? slope.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 + -