mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Taktgenerator


Autor: Maxim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo.

Wie kann man einen Frequenzgenerator programmieren? Dabei soll die 
Frequenz mit Taster1 erhöht und mit Taster2 erniedrigt werden. Der Takt 
wird dann an einem Pin am uC anliegen.

Also ich will nicht den Quellcode, sondern nur Tipps und Anregungen. Bin 
ziemlich neu in der Assembler-Welt.

Der uC ist ein ATMega8 mit 8MHz

Mein Ansatz ist, in einer Schleife einen 8-Bit Register bei jedem 
Durchlauf um die Variable "time" zu verringern und bei Überlauf 
entsprechend eine Taktflanke zu generieren. Die Variable "time" kann 
dann mit den Tastern verändert werden.

Was mein ihr dazu?

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
gucke dir mal im Datenblatt die Timer an. Speziell die Seiten für 
"Waveform Generation" und "Clear Timer on Compare Match"

Autor: Maxim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich verstehe da gar nichts. :-(

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich vermute, du willst mittels einer softwareverzögerung, die 
einstellbar ist, eine weile warten und dann den ausgang togglen um eine 
gewünschte frequenz/tastverhältnis zu erhalten.
richtig oder falsch?

Autor: Maxim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Richtig. Aber da du mich jetzt auf eine andere (und eine viel bessere) 
Lösung gebracht hast, will ich das nun mit Timer lösen. Google hat mal 
wieder was ganz Feines ausgegraben: 
http://www.roboternetz.de/wissen/index.php/Timer/C...)

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
in dem links steht irgendwie nix drin.
aber du scheinst verstanden zu ahben. der atmel hat einen hardwaretimer 
drin, dem du nur sagen musst bei welchem stand er was machen soll. dann 
macht er das alleine und die software macht nix, außer vielleicht ne 
taste abfragen und dann die instruktionen für den timer ändern ....

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau Dir mal bei Timer 1 Mode 4 an, der ist dafür richtig und dann 
setze noch "toggle pin on compare".

Am besten Du schreibst das in C wegen der Kehrwertberechnung f = 1/T


Peter

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]
  • [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.