Ödev 3 : Buton Sayma - Led Yakma

Başlatan muuzoo, 16 Kasım 2015, 16:33:38

muuzoo

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.
gunluk.muuzoo.gen.tr - Kişisel karalamalarım...

mufitsozen

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!  :)
Aptalca bir soru yoktur ve hiç kimse soru sormayı bırakana kadar aptal olmaz.

muuzoo

gunluk.muuzoo.gen.tr - Kişisel karalamalarım...

MC_Skywalker

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.

z

Buton ile ledi seri bağlamak yetiyor.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

MC_Skywalker

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;

M.Salim GÜLLÜCE

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 :)

MC_Skywalker

bu ödevin cevabı değil sayın z'nin tavsiyesi üzerine paylaştım

Firzen

Bu ödev Buton Debounce işlemi değil mi?
Kararsız...

MC_Skywalker

Ben başka şey anladım debonuce ise durum başka. sanırım aşağıdaki gibi birşey





muuzoo

#10
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.
gunluk.muuzoo.gen.tr - Kişisel karalamalarım...

MC_Skywalker

Tamam soru benim anladığım gibiymiş 😀

M.Salim GÜLLÜCE

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. :)