Aktionen auf Button-Druck auslösen

Gast #297539
Lesenswert?
• ▲
▼
Hallo,

ich habe auf einem Board 4 User-Button. Je nach dem welcher Knopf
gedrückt wurde, möchte ich verschiede Aktionen auslösen. Wie formuliere
ich so etwas in VHDL. Kann ich einfach sagen:

if(button1 ='1) then
     aktion := 1;
elsif (button2 ='1') then
     aktion := 2;
end if;

if(aktion = 1) then
      .....
elsif (aktion =2) then
      .....
end if;

Kann das funktionieren ? Hat einer eine bessere Lösung ? Wie realisiere
ich bestimmte Aktionen auf Knopfdruck verschiedener Button ?

Danke !!!!
Gast #297540
Lesenswert?
• ▲
▼
Zuerst würde ich die Buttons entprellen.
Z.B. so :

signal button1_z1 : std_logic;
signal button1_z2 : std_logic;
signal button1_z3 : std_logic;
signal button1_out : std_logic;

..


if clk'event and clk = '1' then
  button1_z3 <= button1_z2;
  button1_z2 <= button1_z1;
  button1_z1 <= button1_in;

  -- abfrage für button gedrückt
  if button_z1 = '1' and button1_z2 = '1' and button_z3 = '0'
then
    button1_out <= '1';
  else
    button1_out <= '0';
  end if;

  -- abfrage für button losgelassen
  if button_z1 = '0' and button1_z2 = '0' and button_z3 = '1'
then
    button1_out <= '1';
  else
    button1_out <= '0';
  end if;

end if;

Die Entprellten Buttons würde ich dann eine State-Machine steuern
lassen. Damit hat man dann auch die möglichkeit auf eine
gedrückt-gehaltene taste zu reagieren (auto-repeat). allerdings sollte
man das entprellen der taste mit nur ca. 100Hz machen. Es macht kein
sinn eine Taste mit 50MHz oder mehr zu entprellen.

Gruß
Rene

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.