Hallo Leute, ich möchte einen Takt erzeugen. Dieser soll von 0-1000Hz einstellbar sein. Das Taktverhältnis ist nicht besonders wichtig, sollte aber nach möglichkeit nicht 25/75 unterschreiten. Ich muß den Takt die ganze Zeit ändern können. Ein externes Bauteil an einem AVR wäre mir am liebsten. Gibt es ein Bauteil dem ich sagen kann in welchem Frequenzbereich es Arbeiten soll und welche bestimmte Frequenz ich wünsche? Die Sache ist die, das ich einen Takt bekomme 0-1400Hz und mit dem Controller den Takt "Messe" und dann einen anderen Takt ausgeben möchte. Die Anwendung ist ein Drehzahlmesser. Da kommt der Takt von 0-1500Hz an und ich will die Nadel nicht so weit ausschlagen lassen. Ich brauche nämlich den Platz und deshalb stauche ich das Anzeigefeld etwas zusammen. Und dann habe ich mir noch in den Kopf gesetzt das nicht linear zu machen, sondern zwei Bereiche im Drehzahlband zu haben wo die Nadel anderst läuft. Da der Controller auch noch einige andere Sachen zu erledigen hat, Habe ich keine Lust den Takt mit Zeitschleifen zu machen. Außerdem kommt mir ja auch der Externe Interrupt in die Quere den ich zum erfassen der Eingangsfrequenz benutze... Hat jemand einen Tipp für mich? Oder weis es einer einfach besser als ich und hat eine Idee für die Lösung auf die ich noch nicht gekommen bin? Gruß Bernd
ich würd mal schauen ob es einen passenden vco (voltage controlled oscillator) gibt. die sind sehr leicht über eine analoge spannung zu steuern. die frage wäre noch wie genau du die frequenz einstellen willst/musst
naja, durch den Rücken in die Brust :-), geht im Prinzip schon, ist aber aufwändig und fehlerträchtig. Aus einem digitalen Signal eine Spannung machen, und die dann wieder in eine Frequenz wandeln... Wenn du auf dem Hauptprozessor nix passendes mehr frei hast (16bit-Timer mit compare und CTC-Funktion) solltest du am einfachsten einen weiteren anschliessen. Der macht nicht weiter, als Daten über die Uart oder SPI zu empfangen und sie in sein OCR-Register zu schreiben. Nur ein paar Zeilen Programm, einen billigen Prozessor, das wars.
Hi, so wie es aussieht brauche ich zwei 16Bit Timer, da ich zwei Frequenzen messen will. Und der Controller soll sich auch noch darum Kümmern die Drehzahl und die Geschwindigkeit auf ein Display auszugeben und ein paar Daten erfassen wie Temperatur vom Öl und darauf dann Reagieren. z.B. bei zu Öltemperatur unter 80 Grad ab einer bestimmten Drehzahl eine LED anschalten, bei erreichen einer bestimmten Drehzahl auch eine LED einschalten etc... Wenn ich schonmal dabei bin, dann kann ich die ganze Sache ja mal ein bissel aufblasen. :-) Allerdings ist da das Problem das ich eben nicht auch noch die Frequenz erzeugen kann. Die 16 Bit Timer sind ja "verbraucht". Die Frequenz muß übrigens nicht so Supergenau sein. Bei 750 U/min sind es ungefähr 50Hz und bei 8000 U/min ungefähr 1300Hz. Ich komme um einen Prüfstand sowieso nicht herum, es muß mir ja jemand bescheinigen das der Tacho und DZM richtig anzeigt, sonst macht der TÜV Ärger. Und da kann ich ja dann ein paar Korrekturparameter einstellen, das wird dann sicher genauer als vom Hersteller... Gibt es vielleicht eine VCO den ich über I2C oder SPI ansteuern kann? Denn bei dem was ich alles anschließen will, gehen mir langsam ab sicher die Ports aus. Ich dachte an den Einsatz eines ATmega162. Wenn der nicht reicht, dann bleibt mir wegen der zwei 16 Bit Timer nur der ATmega64/128 und ich habe eigentlich keine Lust die Prototypenschaltung mit einem SMD-Chip zu machen oder mir ein STK501 zu kaufen. Gruß Bernd
Entschuldigt bitte das Holperige Posting, es ist jetzt 03:11 und ich falle jetzt ins Bett. ;-)
Moin, Man kann auch aus einem 8-Bit Timer einen 16-Bit Timer per Software machen. Ich habe momentan das Datenblatt des 162 nicht vorliegen (hmpf - ich warte immer noch auf DSL), aber da sollte neben den zwei 16-Bit Timern noch ein 8-Bit vorhanden sein. Per Interrupt das High-Byte zählen und fertig isser. Man verschätzt sich immer wieder - aber so ein Controller hat meistens noch massenhaft Zeit "übrig", auch wenn man noch so viel schon reingepackt hat.
Hi, der 162 hat sogar zwei 8-Bit Timer. Auf die Idee den 8-Bit Timer per Software zu erweitern bin ich noch nicht gekommen. Die Idee ist aber gut! Allerdings komme ich schon beim Denken durcheinander da ich alles per Interrupt mache. Da ich 2 Frequenzen "messen" will und (inzwischen) auch 2 Frequenzen erzeugen, habe ich einfach die Befürchtung das es Probleme gibt wenn ein Interrupt kommt während ich in einer Interruptroutine bin. >Man verschätzt sich immer wieder - aber so ein Controller hat meistens > noch massenhaft Zeit "übrig", auch wenn man noch so viel schon reingepackt hat. Ich glaube ich muß mir mal durchrechnen wieviel Zeit ich zur Abarbeitung der Interruptroutine brauche. Wenn ich so darüber nachdenke könnte es gut sein das ich mit der Ungenauigkeit, die bei der Takterzeugung durch Interruptunterbrechungen entstehen könnte, leben kann. Danke für die Anregung! Gruß Bernd
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.