|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
- 以下是主要程序:
- void TSL2561_Write(uchar command,uchar date )
- {
- SFRPAGE = 0x00;
- while(BUSY);
- BUSY=1;
- STO=0;
- STA = 1; //发送起始位
- while(SMB0STA != 0x08);
- STA = 0;
- SMB0DAT = 0x52; //器件地址
- SI = 0;
- while(SMB0STA != 0x18);
- SMB0DAT =command; //器件中寄存器地址
- SI = 0;
- while(SMB0STA != 0x28);
- SMB0DAT = date; //写入器件的指令
- SI = 0;
- while(SMB0STA != 0x28);
- STO = 1;//释放总线
- SI = 0;
- }
- 。。。。
- void main()
- {
- WDTCN = 0x07;
- WDTCN = 0xDE; //关看门狗
- WDTCN = 0xAD;
- os_init();
- Port_IO_Init();
- SMB0_Init();
- TSL2561_Write(CONTROL,03); //给tsl上电
- delay1ms(5);
- TSL2561_Write(TIMING,02); //设置积分时间 ??第二次对器件写的时候 总线一直忙碌 不能访问器件
- Read_Light();
- while(1);
- 好几个星期都没这困扰 望得到大家的帮助
复制代码 [code] 以下是主要程序:
void TSL2561_Write(uchar command,uchar date )
{
SFRPAGE = 0x00;
while(BUSY);
BUSY=1;
STO=0;
STA = 1; //发送起始位
while(SMB0STA != 0x08);
STA = 0;
SMB0DAT = 0x52; //器件地址
SI = 0;
while(SMB0STA != 0x18);
SMB0DAT =command; //器件中寄存器地址
SI = 0;
while(SMB0STA != 0x28);
SMB0DAT = date; //写入器件的指令
SI = 0;
while(SMB0STA != 0x28);
STO = 1;//释放总线
SI = 0;
}
。。。。
void main()
{
WDTCN = 0x07;
WDTCN = 0xDE; //关看门狗
WDTCN = 0xAD;
os_init();
Port_IO_Init();
SMB0_Init();
TSL2561_Write(CONTROL,03); //给tsl上电
delay1ms(5);
TSL2561_Write(TIMING,02); //设置积分时间 ??第二次对器件写的时候 总线一直忙碌 不能访问器件
Read_Light();
while(1);
好几个星期都没这困扰 望得到大家的帮助 |
|