Gast
#1794606
Hallo Leute,
ich will die Anzahl von positive Signalwerte eines Sensor hochzählen.
Aber ich will immer jedes mal ab 0 zählen wenn sich die richtung ändern.
Also mein System ist ein Schrittmotor an dem ich ein Inkremental
Drehgeber auf den Rotor befestig habe. Ich will dass, wenn sich das Moto
Rechts oder links dreht , dass das signal von dem Inkremental ab dem
Zeitpunk wo sich die Richtung gewechsel hat gezählt wird.
wenn das counter 200 erreicht soll der Ausgang, das für mich das
Erreichen von 200 des Counter bedeutet signalisiert ( von 0 auf 1 gehen)
Der Sensor_ink ist mein sensorsignal und der ist in andere Process schon
deklariert und difiniert wann er 1 oder 0 ist. Also der ist genau ein
pegelsignal das mit der schrittfrequenz des Motors läuft.
hier ist das Process dafür, aber mein counter zählt nicht hoch.
Auch wie kann ich machen, dass bein Änderung der Richtung, der Zählstand
genau bei 0 anfängt
Danke.
PROCESS (inkr_A,Richtung)
BEGIN
Ausgang <='0';
IF Richtung ='1' then
if Sensor_inkr = '1' then
--inkr_count <= inkr_count + 1;
IF inkr_count = "11001000" THEN
inkr_count <= (others => '0');
Ausgang <= not Ausgang ;
ELSE
inkr_count <= inkr_count + 1;
End IF;
ELSE
inkr_count <= inkr_count ;
END IF;
ELSIF Richtung ='0' then
if Sensor_inkr = '1' then
IF inkr_count = "11001000" THEN
inkr_count <= (others => '0');
Ausgang <= not Ausgang ;
ELSE
inkr_count <= inkr_count + 1;
End IF;
ELSE
inkr_count <= inkr_count;
End IF;
End IF;
END PROCESS;