VHDL-Forum - Anfänger

noobfrage - zähler

noobfrage - zähler

hey leute, ich kenn mich mit vhdl noch nicht so gut aus und hab da mal ne frage zu einer aufgabe die ich bearbeiten soll.
es geht darum, dass ich einen zähler habe der die position einer rolltreppe ermittelt, sprich nach oben oder unten zählt..wird eine der lichtschranken betätigt dann soll mein positionszähler mit dem signal clear taktsynchron auf den wert 1024 initialisiert werden und beginnen zu zählen. mein problem ist jetzt, dass in meinem fall der zähler bei 1024 stehen bleibt solang clear 1 ist. in dem automaten der meinem zähler clear übergibt bleibt das signal aber 1 bis die rolltreppe 300 positionen später wieder zum stehen kommen soll..folglich funktioniert mein zähler nicht. könnt ihr mir da vll mal auf die sprünge helfen?! wär euch sehr dankbar

mein zähler soweit :

PROCESS (reset, clk, enable, clear) IS
VARIABLE position: integer RANGE 0 TO 4096;
BEGIN
IF reset = '1' THEN
position := 1024;
ELSIF (clk'event and clk = '1' and enable = '1') THEN
IF clear = '1' THEN
position := 1024;
ELSIF up_ndown = '1' THEN
position := position +1;
ELSE
position := position -1;
END IF;
END IF;
q

Re: noobfrage - zähler

hat sich erledigt ...


Re: noobfrage - zähler

Zitat: Anon0
hey leute, ich kenn mich mit vhdl noch nicht so gut aus und hab da mal ne frage zu einer aufgabe die ich bearbeiten soll.
es geht darum, dass ich einen zähler habe der die position einer rolltreppe ermittelt, sprich nach oben oder unten zählt..wird eine der lichtschranken betätigt dann soll mein positionszähler mit dem signal clear taktsynchron auf den wert 1024 initialisiert werden und beginnen zu zählen. mein problem ist jetzt, dass in meinem fall der zähler bei 1024 stehen bleibt solang clear 1 ist. in dem automaten der meinem zähler clear übergibt bleibt das signal aber 1 bis die rolltreppe 300 positionen später wieder zum stehen kommen soll..folglich funktioniert mein zähler nicht. könnt ihr mir da vll mal auf die sprünge helfen?! wär euch sehr dankbar

mein zähler soweit :

PROCESS (reset, clk, enable, clear) IS
VARIABLE position: integer RANGE 0 TO 4096;
BEGIN
IF reset = '1' THEN
position := 1024;
ELSIF (clk'event and clk = '1' and enable = '1') THEN
IF clear = '1' THEN
position := 1024;
ELSIF up_ndown = '1' THEN
position := position +1;
ELSE
position := position -1;
END IF;
END IF;
q

Re: noobfrage - zähler

könnt ihr mir da vll mal auf die sprünge helfen?

Re: noobfrage - zähler

Zitat: Kllara
könnt ihr mir da vll mal auf die sprünge helfen?Dies wird Ihnen auf jeden Fall helfen und Sie werden allen für Ihre Hilfe dankbar sein.