Re: [問題] 請問版上有人懂fpga嗎?
※ 引述《kissa0123 (男鄉民一枚)》之銘言:
: 使用軟體:MAX PLUSII
: 使用晶片:EPF10K10TC144-4
: 程式需求功能如下:
: 用一個DATA SW去控制一顆led燈
: 按一下led燈就有十分之一的亮度
: 再按一下led燈就有十分之二的亮度
: 按到第十下led燈的亮度就是全亮!!!
: 之後再按一下就是滅掉
: 接下來就一直循環了!
: 之後憑自己的能耐只能寫出下面的程式而已
sorry code我懶得看,直接跟你討論設計,給點小建議
1. 要做一個PWM Controller
Dimming_i : in std_logic_vector(3 downto 0);
Clock_i : in std_logic;
PWM_o : out std_logic;
然後就用Clock_i 來觸發Counter 從 0 數到9,
若Dimming_i 輸入為 6,
若當Counter 數值為 0, 1, 2, 3, 4, 5, 6 時, 輸出為0, 其餘為 1
若Dimming_i 輸入為 3,
若當Counter 數值為 0, 1, 2, 3 時, 輸出為0, 其餘為 1
以此類推. Counter數到9 之後再從0 開始數
這樣就實現PWM了 Dimming_i 輸入範圍從 0 ~ 10
2. 接著再做一個偵測按鍵的module, 這個module 輸出接到上面說的PWM Controller
按一下按鍵放開時,數值 + 1, 輸出數值範圍 0 ~ 10
這兩個做完再互相接一起,寫test bench ,然後就會動了
3. 反彈跳叫做debounce,可以google 一下。不難做的。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.62.110.62
推
06/09 21:44, , 1F
06/09 21:44, 1F
→
06/09 21:45, , 2F
06/09 21:45, 2F
→
06/09 21:46, , 3F
06/09 21:46, 3F
原po是要用一個按鈕 按暗暗 就可以循環切換亮度
所以不能用dip switch
如果只是交作業或自己玩,當然用開發版就好啦
洗板還要打件勒,不然就是買QFP包裝的自己慢慢焊,這也須一些磨練與經驗
對原po來說太慢啦!
推
06/09 21:50, , 4F
06/09 21:50, 4F
※ 編輯: Aquatics 來自: 61.62.110.62 (06/09 22:37)
推
06/09 22:51, , 5F
06/09 22:51, 5F
推
06/10 12:47, , 6F
06/10 12:47, 6F