資源簡介
APDS9930-C51程序只有對該模塊基本初始化,調用的代碼,沒有其他的花里胡哨,主程序十分簡潔。只有最有用的,沒有多余的,方便閱讀。

代碼片段和文件信息
#include?“APDS_9930.h“
void?Delay12ms() //@11.0592MHz
{
unsigned?char?i?j?k;
i?=?1;
j?=?130;
k?=?19;
do
{
do
{
while?(--k);
}?while?(--j);
}?while?(--i);
}
//void?ClearINTF(unsigned?char?address)
//{
// char?Ack;
// I2CStart();
// Ack?=?I2CWrite(((0x39<<1)&(0XFE)));
// Ack?=?I2CWrite(0xA0|address);??
// I2CStop();?
//}
void?WriteRegData(unsigned?char?addressunsigned?char?dat)
{
char?Ack;
I2CStart();
Ack?=?I2CWrite(((0x39<<1)&(0XFE)));
Ack?=?I2CWrite(0x80|address);??
Ack?=?I2CWrite(dat);
I2CStop();?
}
unsigned?int?Read_Word(unsigned?char?Address)
{
char?Ack;
unsigned?char?recv_data[2];///0??low;?1??high
I2CStart();
Ack?=?I2CWrite((0x39<<1)&(0XFE));
if(!Ack)
{
return?-1;
}
Ack?=?I2CWrite(0xa0|Address);??
if(!Ack)
{
return?-1;
}
//SCL_LOW();
I2CStart();
Ack?=?I2CWrite(((0x39<<1)|(0X01)));
if(!Ack)
{
return?-1;
}
recv_data[0]=I2CReadACK();
I2CDelay();
recv_data[1]=I2CReadNAK();?
I2CStop();?
return?(unsigned?int)(recv_data[0]?+?256?*?recv_data[1]);?
}
/*可以不用*/
//unsigned?char?Read_byte(unsigned?char?Address)
//{
// char?Ack;
// unsigned?char?recv_data;
// I2CStart();
// Ack?=?I2CWrite((0x39<<1)&(0XFE));
//
// Ack?=?I2CWrite(0xA0|Address);??
//
//
////SCL_LOW();
// I2C_SCL?=?0;
// I2CStart();
// Ack?=?I2CWrite(((0x39<<1)|(0X01)));
//
// recv_data=I2CReadNAK();
//
// I2CStop();?
//
// return?recv_data;?
//}
unsigned?char?init_APDS9930()
{
uint8?ATIME?PTIME?WTIME?PPCOUNT;?
uint8?PDRIVEPDIODEPGAINAGAIN;
????uint8?WENPENAENPON;
ATIME?=?0xff;?//?2.7?ms?–?minimum?ALS?integration?time?
WTIME?=?0xff;?//?2.7?ms?–?minimum?Wait?time?
PTIME?=?0xff;?//?2.7?ms?–?minimum?Prox?integration?time?
PPCOUNT?=?1;?//?Minimum?prox?pulse?count?
// ATIME?=?0xf6;?//?2.7?ms??minimum?ALS?integration?time?
// WTIME?=?0xff;?//?2.7?ms??minimum?Wait?time?
// PTIME?=?0xf6;?//?2.7?ms??minimum?Prox?integration?time?
// PPCOUNT?=?0x08;?//?Minimum?prox?pulse?count?
WriteRegData(0?0);?//Disable?and?Powerdown?
WriteRegData?(1?ATIME);?
WriteRegData?(2?PTIME);?
WriteRegData?(3?WTIME);???
//WriteRegData?(0xd?0);?
WriteRegData?(0xe?PPCOUNT);?
Delay12ms();?//Wait?for?12?ms?
PDRIVE?=?0;?//100mA?of?LED?Power?
PDIODE?=?0x20;?//?CH1?Diode?
PGAIN?=?0;?//1x?Prox?gain?
AGAIN?=?0;?//1x?ALS?gain?
WriteRegData?(0xf?PDRIVE?|?PDIODE?|?PGAIN?|AGAIN);?
//WriteRegData(0xc0xf0);
?
WEN?=?8;?//?Enable?Wait?
PEN?=?4;?//?Enable?Prox?
AEN?=?2;?//?Enable?ALS?
PON?=?1;?//?Enable?Power?On?
WriteRegData?(0?WEN?|?PEN?|?AEN?|?PON);?
//WriteRegData(00x0f?);?
Delay12ms();?//Wait?for?12?ms?
return?1;
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2020-02-26?00:03??APDS9930-51程序\
?????文件???????14779??2020-02-25?11:42??APDS9930-51程序\APDS_9930
?????文件????????6539??2020-02-25?11:42??APDS9930-51程序\APDS_9930.LST
?????文件???????14842??2020-02-25?11:42??APDS9930-51程序\APDS_9930.M51
?????文件????????7298??2020-02-25?11:42??APDS9930-51程序\APDS_9930.OBJ
?????文件????????2765??2020-02-25?11:38??APDS9930-51程序\APDS_9930.c
?????文件?????????236??2020-02-25?11:38??APDS9930-51程序\APDS_9930.h
?????文件??????????75??2020-02-25?11:42??APDS9930-51程序\APDS_9930.lnp
?????文件?????????184??2020-02-26?00:01??APDS9930-51程序\APDS_9930.plg
?????文件???????77101??2020-02-26?00:03??APDS9930-51程序\APDS_9930.uvopt
?????文件???????13547??2020-02-25?09:27??APDS9930-51程序\APDS_9930.uvproj
?????文件???????77097??2020-02-25?11:42??APDS9930-51程序\APDS_9930_uvopt.bak
?????文件???????13547??2020-02-25?09:12??APDS9930-51程序\APDS_9930_uvproj.bak
?????文件????????6017??2020-02-25?11:42??APDS9930-51程序\I2C.LST
?????文件????????6061??2020-02-25?11:42??APDS9930-51程序\I2C.OBJ
?????文件????????3418??2020-02-25?10:40??APDS9930-51程序\I2C.c
?????文件?????????210??2019-12-16?14:57??APDS9930-51程序\IIC.h
?????文件??????????16??2020-02-25?09:31??APDS9930-51程序\comm.h
?????文件????????1308??2020-02-25?11:40??APDS9930-51程序\config.h
?????文件????????1696??2020-02-25?11:42??APDS9930-51程序\main.LST
?????文件????????2610??2020-02-25?11:42??APDS9930-51程序\main.OBJ
?????文件?????????432??2020-02-25?11:42??APDS9930-51程序\main.c
評論
共有 條評論