www.mikrocontroller.net

Forum: FPGA, VHDL & Co. Problem mit Flankendetektor (VHDL + Hardware)


Autor: Julian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
Ich habe einen Flankendetektor in VHDL programmiert und hab das Programm 
dann auf der Hardware getestet, also das die LED bei steigender Flanke 
kurz aufblinkt wenn der Button gedrückt wird. Nur leuchtet die LED 
durchgehend bis ich den Button los lasse geht sie aus und fängt dann 
wieder an zu leuchten. Bei der Simulation hat alles einwandfrei 
funktioniert: Ein kurzes Signal am Beginn für en_rise.
Hardware: Design Kit, Coolrunner II (mit XC2C256, (XC9572XL))

process (clk_n) -- Synchronisation
begin
  if rising_edge(clk_n) then
    taste1 <= btn;
    taste2 <= taste1;
  end if;
end process;

en_rise <= taste1 and not taste2;
led <= en_rise;

Wenn der Button nicht gedrückt ist sollte die LED doch nicht leuchten?
Bitte um Hilfe.
Julian

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kommt drauf an ob dr Button High oder Low active ist.

MFG
Falk

Autor: Julian (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
Zum Testen hab ich die LED direkt mit dem Button verbunden, also
led <= btn;
Und das hat gut funktioniert, die LED hat nur dann geleuchtet wenn auch 
der Button betätigt wurde.
Fehlt mir vielleicht im UCF file für Button irgendeine Einstellung wie: 
Float, Keeper, Pullup (Termination), aber ich denk wens so funktioniert 
hat sollte es  doch auch mit dem Flankendetektor funktionieren, oder ?

julian

Autor: Falk (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Julian

>Zum Testen hab ich die LED direkt mit dem Button verbunden, also
>led <= btn;

Vielleicht si die LED auch LOW active? Wie ist sie denn angeschlossen?

>Fehlt mir vielleicht im UCF file für Button irgendeine Einstellung wie:
>Float, Keeper, Pullup (Termination), aber ich denk wens so funktioniert

Nein.

>hat sollte es  doch auch mit dem Flankendetektor funktionieren, oder ?

Ja. Ich hoffe mal, dein Takt ist langsam genug, sonst siehst du nix. Das 
Signal der detektierten Flanke ist nur einen Taktzyklus breit.

MFG
Falk


Autor: Kritiker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die LED macht genau, was Du hingeschrieben hast. Du taktest doch die 
button-Information mit jedem Takt in Hochgeschwindigkeit durch. Dein 
"kurz Leuchten " ist ein Takt!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.