Drehgeber (Richtungserkennung)

OP #1136568
Ich programmiere gerade ein Projekt in dem ich Sensoren (erstmal einen 
später mehr) auslese und dadurch dann die Richtung festelle).

D.h. ich kann mit CE und updown einen Zähler hoch oder runter zählen 
lassen, oder?
1
if (updown = '1' AND ce = '1') then
2
counter <= counter + 1;
Moderator (Firma: Titel) Persönliche Seite #1136591
> 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
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
> 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

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.