資源簡介
bh1750.c bh1750.h 直接添加到項目中,main.c 中的兩個函數在 應用app(我用的是SampleApp.c)里添加進去,就可以直接讀出光照數值!

代碼片段和文件信息
#include?“bh1750.h“
static?void?delay_nus(void)
{????????
??int?i;
??int?n=100;
??for(i=0;i ??{
????asm(“nop“);asm(“nop“);asm(“nop“);asm(“nop“);
????asm(“nop“);asm(“nop“);asm(“nop“);asm(“nop“);
????asm(“nop“);asm(“nop“);asm(“nop“);asm(“nop“);
????asm(“nop“);asm(“nop“);asm(“nop“);asm(“nop“);
????asm(“nop“);asm(“nop“);asm(“nop“);asm(“nop“);
????asm(“nop“);asm(“nop“);asm(“nop“);asm(“nop“);
????asm(“nop“);asm(“nop“);asm(“nop“);asm(“nop“);
????asm(“nop“);asm(“nop“);asm(“nop“);asm(“nop“);
??}
}
static?void?delay_nms(int?n)
{
??while(n--)
??{
????asm(“nop“);asm(“nop“);asm(“nop“);asm(“nop“);
????asm(“nop“);asm(“nop“);asm(“nop“);asm(“nop“);
????asm(“nop“);asm(“nop“);asm(“nop“);asm(“nop“);
????asm(“nop“);asm(“nop“);asm(“nop“);asm(“nop“);
????asm(“nop“);asm(“nop“);asm(“nop“);asm(“nop“);
????asm(“nop“);asm(“nop“);asm(“nop“);asm(“nop“);
????asm(“nop“);asm(“nop“);asm(“nop“);asm(“nop“);
????asm(“nop“);asm(“nop“);asm(“nop“);asm(“nop“);
??}
}
/****************************
*****************************/
static?void?start_i2c(void)
{
??SDA_W()?;
?????//LIGHT_SCK_0()?;
?????//delay_nus(20);
??LIGHT_DTA_1();//
??LIGHT_SCK_1()?;//
??delay_nus()?;
??LIGHT_DTA_0()?;
??delay_nus()??;
??LIGHT_SCK_0()?;
??delay_nus()??;
??//delay()??;
}
/********************************
緇撴潫I2C
鏁版嵁鍦ㄦ椂閽熼珮鐢靛鉤鐨勬椂鍊欎粠浣庡線楂樿穬鍙?********************************/
static?void?stop_i2c(void)
{
??SDA_W()?;
??LIGHT_DTA_0()?;
??delay_nus();
??LIGHT_SCK_1()?;
??delay_nus();
??LIGHT_DTA_1()?;
??delay_nus();
??LIGHT_SCK_0()?;
??delay_nus();??
}
/******************************
鍙戦€佸瓧鑺傚茍涓斿垽鏂槸鍚︽敹鍒癆CK
褰撴敹鍒癆CK榪斿洖涓?錛屽惁鍒欒繑鍥炰負1
******************************/
static?char?i2c_send(unsigned?char?val)?????????????????
{
????????int?i;
????????char?error=0;
????????SDA_W();
????????for(i=0x80;i>0;i/=2)
{
if(val&i)
LIGHT_DTA_1();
else
LIGHT_DTA_0();
delay_nus();
LIGHT_SCK_1()?;?
delay_nus();
LIGHT_SCK_0()?;
delay_nus();
}
????????LIGHT_DTA_1();
????????SDA_R();
????????//delay_nus();
????????LIGHT_SCK_1()?;?
????????delay_nus();
????????if(LIGHT_DTA())
????????????error=1;
????????delay_nus();
????????LIGHT_SCK_0()?;
????????return?error;
????????
}
/***************************
璇誨彇I2C鐨勫瓧鑺傦紝騫朵笖鍙戦€丄CK
褰撳弬鏁頒負1鐨勬椂鍊欏彂閫佷竴涓狝CK(浣庣數騫?
**************************/
static?char?i2c_read(char?ack)
{
????????int?i;
????????char?val=0;
????????LIGHT_DTA_1();
????????//SDA_R();
????????for(i=0x80;i>0;i/=2)
????????????????{
????????????????????????
????????????????????????LIGHT_SCK_1()?;
????????????????????????delay_nus();
????????????????????????SDA_R();
????????????????????????//SDA_W();
????????????????????????//LIGHT_DTA_0();
????????????????????????//LIGHT_DTA_0()?;
????????????????????????
????????????????????????//delay_nus();
????????????????????????if(LIGHT_DTA())
????????????????????????????????val=(val|i);
????????????????????????delay_nu
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????4786??2015-08-11?18:18??1750光照數字傳感器\bh1750.c
?????文件???????1267??2015-08-11?18:19??1750光照數字傳感器\bh1750.h
?????文件????????709??2015-08-11?18:20??1750光照數字傳感器\main.c
?????目錄??????????0??2015-08-11?18:22??1750光照數字傳感器
-----------?---------??----------?-----??----
?????????????????6762????????????????????4
- 上一篇:Erlang B公式計算器
- 下一篇:全志H3核心板原理圖
評論
共有 條評論