Re: [問題] duty ratio 相乘
※ 引述《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)
推
03/28 11:41, , 1F
03/28 11:41, 1F
討論串 (同標題文章)