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?
gucke dir mal im Datenblatt die Timer an. Speziell die Seiten für "Waveform Generation" und "Clear Timer on Compare Match"
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?
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)
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 ....
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.