欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
fdc2214 oled電容測試msp430程序源碼
[打印本頁]
作者:
Hirari
時間:
2018-9-19 21:20
標(biāo)題:
fdc2214 oled電容測試msp430程序源碼
fdc2214 oled 電容測試程序,用的是msp430f5529單片機
0.png
(12.16 KB, 下載次數(shù): 86)
下載附件
2018-9-20 04:29 上傳
單片機源程序如下:
/**
******************************************************************************
* @file FDC2214.c
* @author BOB
* @version V1.0
* @date 2018-07-5
* @email
* @brief FDC2214配置及數(shù)據(jù)讀取函數(shù)
******************************************************************************
**/
#include <io430.h>
#include "fdc2214.h"
#include "iic.h"
#include "math.h"
#include "Config.h"
//ADDR和SD引腳初始化
#define FDC_ADDR_0 P1OUT &= ~BIT4 //FDC_ADDR置低
#define FDC_ADDR_1 P1OUT |= BIT4 //FDC_ADDR置高
#define FDC_SD_0 P1OUT &= ~BIT5 //FDC_SD置低
#define FDC_SD_1 P1OUT |= BIT5 //FDC_SD置高
/***************************************
* 函數(shù)名:ADDR_SD_Init
* 描述 :配置LDC用到的I/O口
ADDR--PC11
SD --PC12
* 輸入 :無
* 輸出 :無
**************************************/
/*
void ADDR_SD_Init(void) //ADDR和SD引腳初始化
{
}
*/
/***************************************
* 函數(shù)名:InitFDC2214
* 描述 :初始化FDC2214
* 輸入 :無
* 輸出 :retVal 0 and 1
**************************************/
u8 FDC2214_init(void)
{
u16 id;
u8 retVal=1;
u8 ErrCount = 0;
FDC_ADDR_0;// ADDR=0(FDC2214_IIC地址選擇=0X2A) // ADDR=1(FDC2214_IIC地址選擇=0X2B)
FDC_SD_0; // SD=0開啟輸入 // SD=1關(guān)閉輸入
default_addr = EVM_DEFAULT_I2CADDR; //FDC2214地址選擇暫存
delay_ms(10);
// software reset
MPU_Write_2Byte(default_addr,LDC13xx16xx_CMD_RESET_DEVICE,0x8000);
delay_ms(10);
do
{
if (ErrCount++ > 50)
{
return 0;
}
retVal &= MPU_Write_2Byte(default_addr,LDC13xx16xx_CMD_REF_COUNT_CH0,0xFFFF); // 4 clock periods
retVal &= MPU_Write_2Byte(default_addr,LDC13xx16xx_CMD_REF_COUNT_CH1,0xFFFF);
retVal &= MPU_Write_2Byte(default_addr,LDC13xx16xx_CMD_REF_COUNT_CH2,0xFFFF);
retVal &= MPU_Write_2Byte(default_addr,LDC13xx16xx_CMD_REF_COUNT_CH3,0xFFFF);
retVal &= MPU_Write_2Byte(default_addr,LDC13xx16xx_CMD_OFFSET_CH0,0x0000); //補償值
retVal &= MPU_Write_2Byte(default_addr,LDC13xx16xx_CMD_OFFSET_CH1,0x0000);
retVal &= MPU_Write_2Byte(default_addr,LDC13xx16xx_CMD_OFFSET_CH2,0x0000);
retVal &= MPU_Write_2Byte(default_addr,LDC13xx16xx_CMD_OFFSET_CH3,0x0000);
retVal &= MPU_Write_2Byte(default_addr,LDC13xx16xx_CMD_SETTLE_COUNT_CH0,0x0400); // 1 clock period
retVal &= MPU_Write_2Byte(default_addr,LDC13xx16xx_CMD_SETTLE_COUNT_CH1,0x0400);
retVal &= MPU_Write_2Byte(default_addr,LDC13xx16xx_CMD_SETTLE_COUNT_CH2,0x0400);
retVal &= MPU_Write_2Byte(default_addr,LDC13xx16xx_CMD_SETTLE_COUNT_CH3,0x0400);
retVal &= MPU_Write_2Byte(default_addr,LDC13xx16xx_CMD_CLOCK_DIVIDERS_CH0,0x1001); // 1000
retVal &= MPU_Write_2Byte(default_addr,LDC13xx16xx_CMD_CLOCK_DIVIDERS_CH1,0x1001);
retVal &= MPU_Write_2Byte(default_addr,LDC13xx16xx_CMD_CLOCK_DIVIDERS_CH2,0x1001);
retVal &= MPU_Write_2Byte(default_addr,LDC13xx16xx_CMD_CLOCK_DIVIDERS_CH3,0x1001);
retVal &= MPU_Write_2Byte(default_addr,LDC13xx16xx_CMD_DRIVE_CURRENT_CH0,0xF800); //
retVal &= MPU_Write_2Byte(default_addr,LDC13xx16xx_CMD_DRIVE_CURRENT_CH1,0xF800); //
retVal &= MPU_Write_2Byte(default_addr,LDC13xx16xx_CMD_DRIVE_CURRENT_CH2,0xF800); //
retVal &= MPU_Write_2Byte(default_addr,LDC13xx16xx_CMD_DRIVE_CURRENT_CH3,0xF800); //
retVal &= MPU_Write_2Byte(default_addr,LDC13xx16xx_CMD_ERROR_CONFIG,0x0001); // report only DRDYs to INT
retVal &= MPU_Write_2Byte(default_addr,LDC13xx16xx_CMD_MUX_CONFIG,0xC20C); // ch0, ch1,ch2,ch3-> Wipro for 4 ch
retVal &= MPU_Write_2Byte(default_addr,LDC13xx16xx_CMD_CONFIG,0x1E01); // CLKIN pin1281
}while(retVal!=0);
// id=MPU_Read_2Byte(default_addr,LDC13xx16xx_CMD_DEVID);//讀設(shè)備ID
// if(id==0x3055||id==0x3054)
// {
// return 1;
// }
// else
// {
// return 0;
// }
return 1;
}
/***************************************
* 函數(shù)名:evm_processDRDY
* 描述 :讀取寄存器數(shù)據(jù)
* 輸入 :無
* 輸出 :無
**************************************/
void evm_processDRDY(unsigned long allData[4])
{
u8 i=0;
unsigned long reading = 0;
float CAP_Data[4];
float conver = 0; //最終的轉(zhuǎn)換的結(jié)果
for(i=0;i<=3;i++)
{ //0x0FFF 最高到只28位
reading = (unsigned long)(MPU_Read_2Byte(default_addr,i*2) & 0x0FFF) << 16;
reading |= MPU_Read_2Byte(default_addr,(i*2)+1);
allData[i]=reading;
//CAP_Data[i]=reading;
reading=0;
}
//***注意Init中各通道寄存器0x10-0x17的時鐘分頻***//
//*******以下四步計算根據(jù)datasheet P19公式*******//
for(i=0;i<=3;i++)
{
CAP_Data[i] = (CAP_Data[i] * 40000000.0F)/268435456.0F;//得到F(sensorx)
CAP_Data[i] = CAP_Data[i] * 2.0F *3.1515926F;
CAP_Data[i] = 1.0F/((CAP_Data[i] * CAP_Data[i]) * 0.000018F);
CAP_Data[i] = CAP_Data[i] - 0.000000000033F;
CAP_Data[i] = CAP_Data[i] * 1000000000000.0F;//F轉(zhuǎn)換pF;
//allData[i]=CAP_Data[i];
}
}
/***********************************/
/******FDC2214檢測電容值程序********/
/************************************/
double GetCapacitance(unsigned long value)
{
double pi = 3.14159265359;
double L = 18; //uH
double Cboard = 33; //pf
double Cparacitic = 3; //pf
unsigned long long fsensor;
double temp;
fsensor = 1 * 40000000 * value;
fsensor = fsensor / pow(2,28);
temp = 2 * pi * fsensor;
temp = temp * temp;
temp = temp / 1000000; //uH
temp *= L;
return temp;
}
復(fù)制代碼
所有資料51hei提供下載:
FDC2214程序TI430 OLED0.96(V3.0).zip
(1.52 MB, 下載次數(shù): 68)
2018-9-19 21:20 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
TJW。
時間:
2019-11-19 08:50
這個程序有問題,不能用
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1