Forum: Mikrocontroller und Digitale Elektronik Taktgenerator


von Maxim (Gast)


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?

von Matthias (Gast)


Lesenswert?

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

von Maxim (Gast)


Lesenswert?

Ich verstehe da gar nichts. :-(

von Matthias (Gast)


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?

von Maxim (Gast)


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/Counter_(Avr)

von Matthias (Gast)


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 ....

von Peter D. (peda)


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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.