這是強者我同學、與我在期末 CPLD/FPGA 實作所選的題目。很慚愧,其實這是利用DEMO前兩天的時間,拼出來的東西。為了產生 12 種音頻而以暴力法實作除頻器,Gate Count 高到爆炸,差點就燒不進 Altera FLEX (EPF10K10T144-3),所以和絃與升降調的部分於是飲恨放棄,故稱之「簡易電子琴」。
圖中沒將防彈跳電路畫上,事實上我是有做進去的。雖然有同學說做不做 debuncer 其實沒差,但若將鍵盤亂按一通,沒濾掉脈衝產生的斷音還是可以注意到的。
此次資演的作業,是要實做 Dijkstra’s algorithm,並且把圖畫出來。趁著這次機會,用 C# 搭配 GTK# 寫寫看。開發工具使用 MonoDevelop。
第一次使用像 GTK 這類高階的 GUI Toolkit 實在吃足了苦頭,不像 VB 用滑鼠隨便點個按鈕就算。光是在 GTK.Drawingarea 上畫個圖就要橫跨 GDK 的函式,寫個字還得用到 Pango。此外,C# 真是像極了 Java。往後還要多加歷練與嘗試才是。:p
MonoDevelop 自 0.10 版開始內建 Stetic – 專為 GTK# 設計的 GUI Designer。相較於 Eclipse 的 Visual Editor 容易上手許多,但用起來很不穩定,光是寫這次作業就當掉四五次,不然就很好用了。
我的電視卡是麗台出品的 WinFast DTV1000 T。
有關這張卡在 Linux 上的使用,可參考:
Linux DTV HOWTO: Leadtek Winfast DTV1000
頻道部份,由於 dvb-utils 尚未收錄台灣地區的頻段資訊,所以設定檔需要自行產生。
先將下面的頻率資料存成檔案 tw.freq (取什麼名字都行)。
(節錄自 AVerMedia A771 DVB-T card under Linux)
# Taiwan / Taipei
# T freq bw fec_hi fec_lo mod transmission-mode guard-interval hierarchy
# CTV
T 533000000 6MHz 2/3 NONE QAM16 8k 1/8 NONE
# PTV
T 545000000 6MHz 2/3 NONE QAM16 8k 1/8 NONE
# FTV
T 557000000 6MHz 2/3 NONE QAM16 8k 1/4 NONE
# TTV
T 581000000 6MHz 2/3 NONE QAM16 8k 1/4 NONE
# CHV
T 593000000 6MHz 2/3 NONE QAM16 8k 1/8 NONE
# End of the DVB-T channel description file
然後,再下指令 scan tw.freq | tee channels.conf,就能拿到所需的頻道設定檔 channels.conf 了。
將檔案置入 ~/.mplayer 中後,可以用 mplayer dvb://頻道名 試試。
BTW, 這裡提供我的 channels.conf 供參考取用。
頻道代號:
例:
mplayer dvb://PTS
mplayer dvb://”TTV Family”
此次使用 debian etch 下去裝,Linux 2.6.15-8。
繼續努力。 :)