i2c-dev减慢程序速度

时间:2015-10-02 09:55:54

标签: c++ i2c raspberry-pi2

我在带有Raspbian内核版本4.1.6-v7 +的Raspberry Pi 2上运行一个简单的c / c ++代码,以便查看我的新FLIR Lepton相机的热图像。我也想看到我指向它的物体的实际温度,但是当温度表示为相对于相机的内部温度时,我需要调用一个函数     lepton_temperature() 这需要     I2C-dev的 要激活的模块。当我激活它并运行该功能时,程序从大约9fps减慢到大约两帧每分钟。我没有真正修改提供的代码中的任何内容,所以我不明白为什么会发生这种情况。这是功能:

int lepton_temperature() {
if(!_connected) {
      lepton_connect();
}
result = ((LEP_GetSysFpaTemperatureKelvin(&_port, &fpa_temp_kelvin)));
return ( fpa_temp_kelvin);
}

如果没有打开i2c-dev,程序就能正常工作,但当然我得到零而不是温度值。任何人都可能知道发生了什么以及如何解决它/加快速度?

2 个答案:

答案 0 :(得分:0)

听起来可能很明显,但是你的问题告诉我你忽略了它:为lepton_temperature电话使用一个单独的线程。

答案 1 :(得分:0)

原来Alex是对的,因为i2c命令是由同步的ioctl完成的,在每个加载的帧使得程序太慢之后使用命令。我并没有考虑到这一点,因为每一帧的每个像素值都是根据该温度计算的,所以我确信不可能是这种情况。事实证明我错了。 无论如何,感谢所有人,抱歉发布问题而不先检查一个非常明显的解决方案!