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 <= conv_std_logic_vector (position, 12);
END PROCESS;