与PIC16连接时,TCS34725颜色传感器读数会发生波动

时间:2017-03-28 11:24:38

标签: pic xc8

我正在尝试使用PIC16到I2C读取TCS34725颜色传感器的值。目前,我正在不断轮询TCS上的明确注册。但是,每读取清除寄存器中的值大约10次,读数就会随机下降。例如,一组连续读数可以是[17,17,17,17,17,17,17,17,14,15,16,17 ......],重复。

我尝试在同样的情况下与Arduino Uno接口,并获得17的一致读数。

我想消除读数的下降。

我在XC8中读取TCS的代码如下

void read_colorsensor(void){
unsigned char color_low[4];
unsigned char color_high[4];
int i;
I2C_Master_Start();
I2C_Master_Write(0b01010010);   //7bit address 0x29 + Write
I2C_Master_Write(0b10110100);   //Write to cmdreg + access&increment clear low reg
I2C_Master_Stop();

I2C_Master_Start();     //Repeated start command for combined I2C
I2C_Master_Write(0b01010011);   //7bit address 0x29 + Read
color_low[0] = I2C_Master_Read(1);
color_high[0] = I2C_Master_Read(0);
I2C_Master_Stop();
color[0] = (color_high[0] << 8)|(color_low[0]);
return;
}

0 个答案:

没有答案