Bir butona "n" kez basıldığında bir ledi "n" kez yakıp söndüren tasarımı gerçekleştiriniz. Tasarım karta yüklendiğinde butona basılmasını bekleyecek, "n" adet basımdan sonra da "n" adet led yak-söndür safhasına geçecektir. Led yak-söndür işleminden sonra tekrar buton basılmasını bekleyecek ve aynı işlemleri tekrarlayacaktır.
Kolay gelsin :)
İpucu-1: Temelde iki durumumuz var. Butona basıldı mı ve kaç kez basıldı durumu, diğeri ise butona basma sayısı 0 dan büyük ve buton zaman aşımı oluşmuş durumu.
İpucu-2: Zaman aşımını ayarlamak için daha önceki ödevlerde verilen frekans bölme işleminden faydalanabilirsiniz.
Alıntı yapılan: muuzoo - 16 Kasım 2015, 16:33:38
Bir butona "n" kez basıldığında bir ledi "n" kez yakıp söndüren tasarımı gerçekleştiriniz. Tasarım karta yüklendiğinde butona basılmasını bekleyecek, "n" adet basımdan sonra da "n" adet led yak-söndür safhasına geçecektir. Led yak-söndür işleminden sonra tekrar buton basılmasını bekleyecek ve aynı işlemleri tekrarlayacaktır.
Kolay gelsin :)
Ben yaptim bitirdim bile, Sizede kolay gelsin! :)
Alıntı yapılan: mufitsozen - 16 Kasım 2015, 17:01:08
Ben yaptim bitirdim bile, Sizede kolay gelsin! :)
Hızlısınız hocam :D
Ben bu soruyu çözemedim. daha doğrusu çözüm için nasıl bir algotirma çıkartacağım anlamadım.
sanırım basit bir Sonlu Durum makinası dersine ihtiyacım var.
Buton ile ledi seri bağlamak yetiyor.
seri bağlayınca böyle oluyor
----------------------------------------------------------------------------------
-- Engineer: MC_Skywalker
-- Create Date: 18.09.2015 19:18:49
-- Module Name: Switch_Controlled_Leds - Behavioral
-- Project Name: Anahtar Kontröllü LED
-- Target Devices: XC7A35T-1
-- Tool Versions: Vivado 2015.3
-- Description: Diglent sitesindeki Verilog örneklerinin VHDL ile Gerçeklenmesi
--
-- Revision 0.01 - File Created
-- Revision 0.02 - Vivado 2015.3 update
----------------------------------------------------------------------------------
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity Switch_Controlled_Leds is
Port ( SW0 : in STD_LOGIC;
LED0 : out STD_LOGIC);
end Switch_Controlled_Leds;
architecture Behavioral of Switch_Controlled_Leds is
begin
Process (SW0)
begin
case SW0 is
when '0' => LED0 <= '0';
when '1' => LED0 <= '1';
when others => LED0 <= '0';
end case;
end Process;
end Behavioral;
Alıntı yapılan: MC_Skywalker - 28 Kasım 2015, 21:39:53
seri bağlayınca böyle oluyor
----------------------------------------------------------------------------------
-- Engineer: MC_Skywalker
-- Create Date: 18.09.2015 19:18:49
-- Module Name: Switch_Controlled_Leds - Behavioral
-- Project Name: Anahtar Kontröllü LED
-- Target Devices: XC7A35T-1
-- Tool Versions: Vivado 2015.3
-- Description: Diglent sitesindeki Verilog örneklerinin VHDL ile Gerçeklenmesi
--
-- Revision 0.01 - File Created
-- Revision 0.02 - Vivado 2015.3 update
----------------------------------------------------------------------------------
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
entity Switch_Controlled_Leds is
Port ( SW0 : in STD_LOGIC;
LED0 : out STD_LOGIC);
end Switch_Controlled_Leds;
architecture Behavioral of Switch_Controlled_Leds is
begin
Process (SW0)
begin
case SW0 is
when '0' => LED0 <= '0';
when '1' => LED0 <= '1';
when others => LED0 <= '0';
end case;
end Process;
end Behavioral;
Muzoonun kafası iyice karışmıştır :)
bu ödevin cevabı değil sayın z'nin tavsiyesi üzerine paylaştım
Bu ödev Buton Debounce işlemi değil mi?
Ben başka şey anladım debonuce ise durum başka. sanırım aşağıdaki gibi birşey
(http://s11.postimg.cc/aft7z1fdb/debonuce.jpg) (http://postimg.cc/image/aft7z1fdb/)
Bir yanlış anlaşılmayı düzeltmek istiyorum.
@mufitsozen hocamın mesajını onun espirili mesajlarından biri diye düşünmüştüm ama
@Mehmet Salim GÜLLÜCE 'nin de msejaını görünce anladım ki ödevine-projesine çözüm isteyen biri zannedilmişim.
Geçenlerde gerçekleştirilen FPGA eğitimini
@alicavuslu ve ben beraber verdik. O yüzden benim bu sorunun çözümüne zaten ihtiyacım yok. Eğitimde ara ara bu tarz ödevler verelim FPGA ile uğraşanlar için beyin jimnastiği olur diye konuşulmuştu. İlk iki ödevi de
@alicavuslu zaten konu altına yazmıştı. Ben de onun başlık formatında 3. bir ödev yazdım olay bu sadece.
@z hocam sadece butona basınca led yansın bırakınca sönsün değil uygulamanın amacı, o yüzden seri bağlantı işe yaramaz.
@Firzen "debounce" işlemi bu tasarımda kullanılacak şeylerden biri sadece ama senaryonun tamamını karşılamıyor.
@MC_Skywalker "debounce" bu tasarımın buton okuma kısmında kullanılmalı.
Tasarım senaryosu şu şekilde:
1) Butona kaç kere basıldığı sayılacak.
2) Butona basma işlemi bittikten sonra (Burada bir timeout belirlemeniz gerekiyor. Örn: 5 sn süresince butona basılmazsa. Ve her buton basışı timeout değerini başa döndürmeli)
3) Sayılan basma sayısı kadar ledler 1 saniye (0.5 saniye de olabilir size kalmış süre) aralıkla yanıp sönecek. (Örneğin 3 kere bastı isek 3 kere yanıp sönecek)
4) Tekrar 1. adıma geri dönülecek.
Tamam soru benim anladığım gibiymiş 😀
Vallaa bende öyle anladım ama espiriyle karışık gitti olay.
Ancak hakkaten ödev isteyen biri zannettiğimi de eklemeliyim.
Aslında bu tür problemleri Başka bir başlık altında belirli kişilerin düzenlemesinde fayda war sanırım.
Konuda beyin cimnastiği yapmak isteyenlerde cevaplarını verirler.
Forumun öyle bir köşesi varmı tabiiki bilmiyorum. :)