作者kissa0123 (男鄉民一枚)
看板Electronics
標題[問題] 請問版上有人懂fpga嗎?
時間Tue Jun 9 12:09:54 2009
使用軟體:MAX PLUSII
使用晶片:EPF10K10TC144-4
設計程式需求功能如下:
用一個DATA SW去控制一顆led燈
按一下led燈就有十分之一的亮度
再按一下led燈就有十分之二的亮度
按到第十下led燈的亮度就是全亮!!!
之後再按一下就是滅掉
接下來就一直循環了!
之後憑自己的能耐只能寫出下面的程式而已
module xmax(clk,led,enable);
input clk;
output led,enable;
reg [9:0]led;
reg [15:0]ms1;
reg [7:0]count,count1;
reg scanclk1,scanclk2;
assign enable = 1;
always@(posedge clk)
begin
if(ms1==0)
begin
ms1 = 16'h0010;
scanclk1 = ~scanclk1;
end
else
begin
ms1 = ms1-1;
end
end
always@(posedge scanclk1)
begin
if(count == 10)
begin
count = 0;
scanclk2 = ~scanclk2;
end
else
count = count + 1;
end
always@(posedge scanclk2)
begin
if(count1 == 100)
count1 = 0;
else
count1 = count1 + 1;
if(count1 <= 100)
led[9]=1;
else
led[9]=0;
if(count1 <= 90)
led[8]=1;
else
led[8]=0;
if(count1 <= 80)
led[7]=1;
else
led[7]=0;
if(count1 <= 70)
led[6]=1;
else
led[6]=0;
if(count1 <= 60)
led[5]=1;
else
led[5]=0;
if(count1 <= 50)
led[4]=1;
else
led[4]=0;
if(count1 <= 40)
led[3]=1;
else
led[3]=0;
if(count1 <= 30)
led[2]=1;
else
led[2]=0;
if(count1 <= 20)
led[1]=1;
else
led[1]=0;
if(count1 <= 10)
led[0]=1;
else
led[0]=0;
end
endmodule
我寫的程式功能是10顆led各代表10個亮度
問題來了...
(1)要怎使用datd sw變成按一下就可以切換亮度...
之前在網路有發問過
有人說需要用到彈跳開關!
(2)但彈跳開關是什麼>"<(翻書翻不到!毫無頭緒中...)
有人能指導一下的嘛...
跪求各位了>.<
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.204.118.61
1F:推 deathcustom:去材料行問比較快 06/09 12:58
2F:推 deathcustom:或者去看看max plus II有沒有副板~就是外接的模組 06/09 12:59
3F:推 deathcustom:比如SRAM、ADDA、RS232、七段顯示功能的副板應該都有 06/09 13:00
4F:→ MAXI:用頻率改變亮度? 06/09 13:13
5F:推 youwin0125:改變電流大小? 改變電阻大小? 06/09 15:25
6F:推 pinkjojo:彈跳開關.按一下會彈回來恢復原來的狀態類似PC reset按紐 06/09 16:36
7F:→ pinkjojo:應該說就是PC reset button 06/09 16:37
8F:推 katheryne:這個用 microp 比較省錢吧 ?? 06/09 18:42
※ 編輯: kissa0123 來自: 123.204.118.61 (06/09 22:48)
9F:→ kissa0123:我只是要設計程式而已@@不用做版子... 06/09 22:48
10F:推 katheryne:如果是課程需要而不是要開發產品,還是建議用 PWM 切他 06/10 08:03
11F:→ kissa0123:老師上課也沒教!問他也不說..昨天咕狗一下找到彈跳開關 06/10 10:34
12F:→ kissa0123:pwm~這名詞網路上有人分享過! 我自己在努力一下吧! 06/10 10:35
13F:→ ery001:ripple counter+外部的訊號(或許是您的data sw)當輸入clk? 06/10 16:09
14F:→ ery001:fpga和這裡的data sw是指啥我不是很暸,但單純以功能和 06/10 16:11
15F:→ ery001:digital設計考量,這應該一個programmable ripple counter 06/10 16:11
16F:→ ery001:把clk拉出去當成輸入控制訊號,最多就是counter輸出多加個 06/10 16:13
17F:→ ery001:decoder,當然fpga有其他的考量的話我就真的不懂了 :P 06/10 16:14