最近给儿子安装LEGO Desginer后,发现风扇响得厉害,用sysctl看CPU温度又不是很方便,于是在原来读电池的代码里加了几行,顺便把CPU温度也读出来,
int temp0, temp1;
sysctlbyname("dev.cpu.0.temperature", &temp0, &len, NULL, 0); sysctlbyname("dev.cpu.1.temperature", &temp1, &len, NULL, 0);
|
温度是读出来了,可显示的时候,发现是一个奇怪的值,比如3242,这时对应用sysctl看到的值是51度,不知道sysctl是如何转换的,于是再看sysctl的源码发现转换的公式是(temp-2732)/10。一下子没有反应过来这个2732是什么魔数。
想到温度测量都是用温度传感器,于是就找了些温度传感器的资料看,比如最通用的AD590,看了以后才反应过来,实际这个
2732就是热力学的绝对零度(-273.15摄氏度)。
阅读(1933) | 评论(2) | 转发(0) |