作者joy830 (joy)
看板Electronics
标题Re: [问题] duty ratio 相乘
时间Sat Mar 27 23:38:42 2010
※ 引述《groccy (溪哥)》之铭言:
: 请问各位高手
: 现在有两个频率相同的pulse
: duty ratio分别是X和Y
: 若我想要用他们来做出另一个同频率的pulse, 其duty ratio是X*Y
: 我应该要怎麽做呢?
: 请有经验的高手指教
: 小弟感激不尽~
不知道你用的开发版有没有乘法器
有这个指令可以用 就直接用 没有的话就用左移来完成乘法 这个ok吧!?
0 < duty < 1
0000 0000 < duty < 1 0000 0000
最後注意采用的都是小数点後的乘法
像0.5 * 0.5 = 0.25
1000 0000 * 1000 0000 = 1000 0000 0000 0000 先乘开
最後知道答案是0.25 = 0100 0000
比较之後 算法是先去掉低8-bits 再右移一格
再算一个
0.25 * 0.5
0100 0000 * 1000 0000 = 0100 0000 0000 0000
先去掉低8 bits = 0100 0000
再右移一格 = 0010 0000 = 0.125
右移 最左边的bit补的是进位旗标C 自行验证吧
再算一个有进位的好了
0.75 * 0.75
1100 0000 * 1100 0000 = 0010 0000 0000 0000 C=1
去掉低8-bits = 0010 0000 C=1
右移一格 C001 0000 = 1001 0000 = 0.5625 超过0.5的乘法会发生进位
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 219.85.166.161
※ 编辑: joy830 来自: 219.85.166.161 (03/27 23:46)
1F:推 groccy:感谢joy大鼎力相助! 03/28 11:41