2个频率随时间的精确转换

时间:2016-05-20 08:49:59

标签: c++ math precision

我正在开发一个小型的个人C ++项目,我有兴趣确定一个硬件单元中发生了多少个时钟周期。

两个单位的速度是已知的,并且始终以MHz表示,最多2位小数。一个单元可以看作是另一个单元的控制器,因为它等待另一个单元在控制器继续前完成其任务。从数学上讲,计算非常简单:

  1. 取控制器频率并通过f = 1 / s将其转换为秒/周期。
  2. 将此数字乘以控制器循环的经过次数(Δcc* s / cc)。
  3. 将此数字乘以主题单元的频率,您就有多少主题时钟周期。
  4. 我在这里的关注是精确的。我想到了两种可能的方法:

    1. 使用双打直接进行数学运算,或......
    2. 在两个频率之间找到GCD,围绕该频率执行数学运算,并使用主题中的无符号整数跟踪时间步长。
    3. 我对堆栈溢出社区的问题是:它是否是上述解决方案之一,在此计算中保持最高精度的最佳解决方案是什么?该计算将在循环中执行,以确定控制器何时可以移动,因此控制器必须知道(就其自身的时钟而言)主题单元是否已完成其任务。

      安全的假设是两个频率都不会超过500 MHz。

0 个答案:

没有答案