Drehgeber (Richtungserkennung)

Moderator (Firma: Titel) Persönliche Seite #1136591
Lesenswert?
• ▲
▼
> D.h. ich kann mit CE und updown einen Zähler hoch oder runter zählen
> lassen, oder?
Nein, du brauchst noch den Takt (CLK):
1
process (clk) begin
2
  if(rising_edge(clk)) then
3
    if (ce='1') then     -- zählen?
4
      if (updown = '1')  -- hoch oder runter?
5
      then   counter <= counter + 1; 
6
      else   counter <= counter - 1; 
7
      end if;
8
    end if;
9
  end if;
10
end process;
OP #1136609
Lesenswert?
• ▲
▼
Vielen Dank. Jetzt bekomme ich nur noch eine Fehlermeldung:

Error (10309): VHDL Interface Declaration error in E_sensor.vhd(96): 
interface object "left_right" of mode out cannot be read. Change object 
mode to buffer.

left_right ist mein updown. Und eigentlich sieht es genauso aus wie aus 
dem Beispiel. Aber im Zähl Process gibt es dann diesen Fehler. 
left_right jetzt als Buffer definieren ist wohl nicht der richtige Weg, 
oder?


Nachtrag:

Ich habe left_right jetzt einfach als Signal definiert. Ich glaube so 
könnte es funktionieren. Ob das eine gute oder schlechte Lösung ist kann 
ich nicht beurteilen.
Moderator (Firma: Titel) Persönliche Seite #1136631
Lesenswert?
• ▲
▼
> interface object "left_right" of mode out cannot be read.
Du verwendest das Signal offenbar lokal und willst es über einen 
entity-Port ausgeben.

> left_right jetzt als Buffer definieren ist wohl nicht der richtige Weg
Gut erkannt ;-)

> Ich habe left_right jetzt einfach als Signal definiert.
Das ist richtig so.
Für die Ausgabe über den Port mußt du das dann nochmal extra zuweisen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren