- 論壇徽章:
- 0
|
最近給兒子安裝LEGO Desginer后,發(fā)現(xiàn)風扇響得厲害,用sysctl看CPU溫度又不是很方便,于是在原來讀電池的代碼里加了幾行,順便把CPU溫度也讀出來,
int temp0, temp1;
sysctlbyname("dev.cpu.0.temperature", &temp0, &len, NULL, 0);
sysctlbyname("dev.cpu.1.temperature", &temp1, &len, NULL, 0);
溫度是讀出來了,可顯示的時候,發(fā)現(xiàn)是一個奇怪的值,比如3242,這時對應用sysctl看到的值是51度,不知道sysctl是如何轉(zhuǎn)換的,于是再看sysctl的源碼發(fā)現(xiàn)轉(zhuǎn)換的公式是(temp-2732)/10。一下子沒有反應過來這個2732是什么魔數(shù)。
想到溫度測量都是用溫度傳感器,于是就找了些溫度傳感器的資料看,比如最通用的AD590,看了以后才反應過來,實際這個2732就是熱力學的絕對零度(-273.15攝氏度)。
![]()
本文來自ChinaUnix博客,如果查看原文請點:http://blog.chinaunix.net/u/29188/showart_2177352.html |
|