最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

【深圳 IO 攻略】第 6 關:調(diào)諧最優(yōu)化引擎

2022-06-01 08:22 作者:ココアお姉ちゃん  | 我要投稿

本文首發(fā)于 B 站《深圳 IO》文集(https://www.bilibili.com/read/readlist/rl569860)。原創(chuàng)不易,轉(zhuǎn)載請注明出處。

關卡展示

這一關我們需要參考一下數(shù)據(jù)手冊來決定該如何編寫我們的代碼:

這一頁的核心就一句話:AUDIO_OUT = (AUDIO_IN - 50) × 4 + 50。

然后我們觀察時序圖,發(fā)現(xiàn)當【最優(yōu)化】端口信號為 0 時,我們將聲音信號原樣輸出;而當【最優(yōu)化】端口信號為 100 時,我們需要將聲音信號按照上面的公式進行最優(yōu)化處理后輸出。

首先我們遇到了第一個難題,就是這一關有三個簡單 IO 信號,但是我們的芯片只有兩個 p 口可以使用。這時候,我們發(fā)現(xiàn)【最優(yōu)化】這個端口只有 0 和 100 兩種信號,因此可以用之前提到的 DX-300 轉(zhuǎn)換成 x 口信號,這樣同一塊芯片就能接收 3 個簡單 IO 口的信號了。如圖所示:

因為最優(yōu)化接在 DX-300 的 p2 接口上,DX-300 里的三位數(shù)只有百位會受影響,所以原始的 0/100 信號都會原樣輸出到 MC4000 的 x0 口上。

然后,有了以往的經(jīng)驗后,我們很容易寫出這樣的代碼:

首先使用 tcp 測試指令讓 x0 和 50 比大?。╰cp x0 50)。比 50 小說明最優(yōu)化信號為 0,直接將 p0 的信號原樣輸出給 p1(- mov p0 p1)。比 50 大說明最優(yōu)化信號為 100,需要將 p0 的信號處理后再發(fā)送給 p1。此時,我們將 p0 的值存入 acc(+ mov p0 acc),然后依次進行 -50(+ sub 50),×4(+ mul 4)和 +50(+ add 50)的運算后,將運算后的結(jié)果發(fā)送給 p1(+ mov acc p1)。以上指令執(zhí)行完畢后,休眠一個周期(slp 1),準備進入下一個周期。

一個很容易想到的優(yōu)化方案

有沒有覺得以上算術(shù)過程過于繁瑣?其實數(shù)據(jù)手冊里給我們的公式并沒有化簡到最簡形式。這個公式其實小學生都會化簡:

AUDIO_OUT

= (AUDIO_IN - 50)?×?4 + 50

= AUDIO_IN × 4 - 200 + 50

= AUDIO_IN × 4 - 150

最優(yōu)化的過程只需要乘和減兩步運算就行了,不需要三步運算。因此以上代碼中的

可以縮減為以下兩行:

最終的設計方案如下:

點擊左下角的【模擬】,稍等片刻,便會彈出結(jié)算界面:


【深圳 IO 攻略】第 6 關:調(diào)諧最優(yōu)化引擎的評論 (共 條)

分享到微博請遵守國家法律
华宁县| 嘉荫县| 东兰县| 德阳市| 东兴市| 合山市| 资源县| 大冶市| 郑州市| 五莲县| 盐亭县| 南郑县| 昭通市| 上思县| 定兴县| 安乡县| 巴彦县| 平泉县| 昌平区| 措美县| 平顶山市| 平凉市| 贺州市| 紫云| 河池市| 永宁县| 株洲县| 黄骅市| 正安县| 安福县| 天津市| 石林| 漯河市| 稷山县| 珠海市| 微博| 博兴县| 旌德县| 麻江县| 密云县| 营口市|