【问题标题】:How to calculate cpu fan rotational speed using a program in c++?如何使用 C++ 中的程序计算 CPU 风扇转速?
【发布时间】:2014-08-12 19:09:33
【问题描述】:

我想用 C++ 编写一个程序,该程序实际计算 cpu 风扇速度并将信息显示给用户。我在网上研究了有关使用 speedfan 软件等的信息,但我想尝试编写自己的程序,以便挑战我的技能。我有一种感觉,我需要添加某种可以读取风扇转速的硬件,但我想知道 cpu 风扇速度和计算机内部任何其他进程(如 cpu 温度)之间是否有任何算法。可能是那时我不需要使用任何外部硬件。谢谢

【问题讨论】:

  • 听起来您需要使用一些特定于操作系统的 API。
  • 这绝对不容易。您将需要不切实际地使用 rdtsc
  • 获取风扇速度取决于操作系统,甚至可能取决于硬件。此外,CPU 风扇速度按原样提供给您,除了可能进行一些缩放外,无需进一步计算;您实际上无法计算旋转次数并将其除以时间。温度和风扇速度之间的关系通常完全取决于硬件(软件只会设置“最大功率的 50%”,因此甚至不会设置最大 RPM 的 50%)。所以,坚持使用 SpeedFan 或 HWiNFO 或同等产品;他们甚至可以为有趣的东西提供 API。
  • @顺磁性羊角面包:-我有这种感觉,可能是创建某种速度传感器实际上可以使我的工作更轻松,然后我可以将传感器集成到我的软件中。这可以给我精确和准确的阅读。你对此有何看法

标签: c++


【解决方案1】:

如果有的话,您可以尝试使用内置的 CPU 风扇传感器来获取速度。实际上,我看不到从另一个参数(例如温度或其他任何参数)精确计算风扇速度的方法,只能做某种预测(例如,如果温度上升得非常高,那么风扇更有可能以最大速度旋转并且等等)。

【讨论】:

  • :- 我有一种感觉,可能是创建某种速度传感器实际上可以使我的工作更轻松,然后我可以将传感器集成到我的软件中。这可以给我精确和准确的阅读。您对此有何看法?
  • 如果您的风扇没有任何传感器,也许您可​​以做到。例如,如果你有一个激光(光源)和某种光传感器(接收器),你可以把激光束穿过旋转的风扇,通过计算光接收器上的脉冲你可以知道,风扇叶片中断的频率激光射线。并由此您可以计算风扇速度,并有一定的公差。
  • :- 这实际上是一个非常有趣的想法。对此,我真的非常感激。创造一些东西总是很有趣,而不是使用相同的旧传统方式。即使失败了,我们也总能学到一些东西。我会尽快实施你的想法。谢谢
  • 我相信你,你会成功的)
  • 谢谢。我会尽力的。
猜你喜欢
  • 2013-06-14
  • 2013-10-02
  • 1970-01-01
  • 2018-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-14
  • 1970-01-01
相关资源
最近更新 更多