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 !!!!
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
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.