mikrocontroller.net

Forum: FPGA, VHDL & Co. Timerfrage


Autor: Tim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

noch einmal eine doofe Frage von mir, aber stecke ein wenig fest.

Ich möchte mir einen Timer bauen der ein 1,2 oder 4 Hz Taktsignal hat.
Leider bin ich mir grade noch so wirklich sicher wie ich das machen
soll. Folgenden Ansatze habe ich:

entity Timer is
    Port ( Aktiv : in STD_LOGIC_VECTOR (1 downto 0);
           Clk : out  STD_LOGIC);
end Timer;


architecture Behavioral of Timer is
  signal intern_sig: STD_LOGIC;

begin
  process(Aktiv)
  begin

    if(Aktiv = '1')
      if(Frequenz = "00") then                --1HZ
        intern_sig <= (not intern_sig) after 100 MS;
      elsif (Frequenz = "01") then              --2HZ
        intern_sig <= (not intern_sig) after 50 MS;
      elsif (Frequenz = "10") then              --3HZ
        intern_sig <= (not intern_sig) after 25 MS;
      end if;
      Clk <= intern_sig;
    end if

  end process;
end Behavioral;


Das Problem ist, Clk kann ich nicht auf inout setzen, da es sich sonst
mit den Eingängen aus dem Simulator überschneidet und ich einen
undefinierten Zustand bekomme.
Kennt einer von euch eine Lösung auf dieses Problem?

Alternativ hat die Platine noch einen 50 Hz Taktgeber, wo ich aber das
Problem hab, da ich nicht weiß wie ich genau 1, 2 bzw. 4 Hz einstelle.

Mit einem Frequenzteiler komme ich so grade auf 3,0125Hz.

Naja irgendwie will das alles nicht so ganz.

Bin über jede Hilfe dankbar.


TIM :)

Autor: Klaus Falser (kfalser)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn Dein Timer auf einer Platine laufen soll, dann ist nix mit "after
100 ms".

Die einzige Möglichkeit ist aus dem externen Takt durch einen Teiler
auf die gewünschte Frequenz zu kommen.
Also : 1 Hz => 50 Hz durch 50 teilen
       4 Hz => geht nicht, weil 50 nicht durch 4 teilbar.

Autor: someone-somewhere (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hat hier jemand einen fertigen Core, der aus x-Mhz Taktfrequenz X/2-Mhz
erzeugt?
Wenn möglich 2 Cores die je nur einen einzelnen Puls oder Impulse
erzeugen

Danke

Autor: gekko (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo someone-somewere!

Du möchtest also nur eine Frequenz halbieren, wenn ich das richtig
verstehe?

Nimm dafür doch ein einfach ein FlipFlop und koppel den negierten
Ausgang auf den Einfang zurück.

Das mit den einzelnen impulsen hab ich nicht ganz verstanden, sorry!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.