Hallo, bin Neuling in µC und C,habe zunächst viele treats, das tutorial und div. gegoogelte pages gelesen. Möchte aber das Rad nicht neu erfinden. Aufgabe: gegeben ist ein TTL Rechtecksignal (high 6ms) mit variabler Periodenlänge zwischen 0.5Hz und 2.5 Hz. 1.die Periodenlänge soll möglichst genau gemessen werden. 2.ich benötige als Ausgabe ein Sinussignal von +- 65Hz nach der Funktion y=65x^-1, (wobei x die gemessene Frequenz ist;-)) Mit dem Sinussignal wird ein (Vibrations-)Aktor betrieben, der neben der Frequenz y auch fast alle Subharmonischen produziert. Sinn der Übung ist es, eine Interferenz (je nach Phase destruktiv oder konstruktiv)zwischen den Obertönen der zu messenden Frequenz x und den Subharmonischen der erzeugten Frequenz y zu erreichen. Das bedeutet, dass y immer ein ganzzahliges Vielfaches von x sein muss. y soll andauernd laufen und durch die gemessenen Veränderungen in x immer aktualisisert werden. Die Messergebnisse möchte ich währenddessen per Uart an ein PC TerminalProg loggen. Jetzt die Fragen: Wie ich die Sache bislang verstanden habe, kann ich das nicht mit EINEM Bauteil ( zB Tiny, Mega) erreichen, da allein schon die Generierung einer PWM als Sinus über Lut den µC so beschäftig, dass er währenddessen keine anderen Operationen wie Messen und Berechnen durchführen kann. Ist es richtig, dass für eine solch niedrige Frequenz DDS mit einem ADxxx oversized wäre? Ist die Idee, einen µC zum Messen, Rechnen und UART zu nehmen und einen zweiten µC zur Generierung des PWM Signals zu nehmen völlig nebendran? Ich würde mich über einen oder mehrere Tipps freuen! Thomas
Hi >Ist die Idee, einen µC zum Messen, Rechnen und UART zu nehmen und einen >zweiten µC zur Generierung des PWM Signals zu nehmen völlig nebendran? Ja, weil diese Annahme >Wie ich die Sache bislang verstanden habe, kann ich das nicht mit EINEM >Bauteil ( zB Tiny, Mega) erreichen, da allein schon die Generierung >einer PWM als Sinus über Lut den µC so beschäftig, dass er währenddessen >keine anderen Operationen wie Messen und Berechnen durchführen kann. nicht stimmt. Eher begeht der µC aus Langeweile Suizid. MfG Spess
@ Thomas "s." (kyma) >gegeben ist ein TTL Rechtecksignal (high 6ms) mit variabler >Periodenlänge zwischen 0.5Hz und 2.5 Hz. >1.die Periodenlänge soll möglichst genau gemessen werden. Das geht einfach per ICP Funktion. >2.ich benötige als Ausgabe ein Sinussignal von +- 65Hz nach der Funktion >y=65x^-1, (wobei x die gemessene Frequenz ist;-)) Also y = 65/x, macht bei dir Frequenzen von 26-130 Hz. >Das bedeutet, dass y immer ein ganzzahliges Vielfaches von x sein muss. Kriegt man hin. >Die Messergebnisse möchte ich währenddessen per Uart an ein PC >TerminalProg loggen. Hmm. >Wie ich die Sache bislang verstanden habe, kann ich das nicht mit EINEM >Bauteil ( zB Tiny, Mega) erreichen, da allein schon die Generierung >einer PWM als Sinus über Lut den µC so beschäftig, dass er währenddessen >keine anderen Operationen wie Messen und Berechnen durchführen kann. Stimmt nicht. So ein AVR hat schon mächtig Power. Ausserdem kann man der Einfacheit halber auf einen R2R DAC zurückgreifen, das entspannt die Sache zusätzlich. Damit wird die Sinuserzeugung zu Kinderspiel. >Ist es richtig, dass für eine solch niedrige Frequenz DDS mit einem >ADxxx oversized wäre? Ja. >Ist die Idee, einen µC zum Messen, Rechnen und UART zu nehmen und einen >zweiten µC zur Generierung des PWM Signals zu nehmen völlig nebendran? Mehr oder weniger. Das macht am Ende mehr Aufwand als ein AVR. Deinen Sinus kann man leicht per Software-DDS machen, siehe Artikel, dort gibt es ein paar nette Projekte. Für max. 130 Hz reichen Pi mal Daumen 1-5kHz Samplingrate + Filter. Die Messung und das bissel UART-Gedöns macht der AVR nebenbei und pfeift noch La Paloma, auch mit nur ein paar MHz Takt. MFg Falk
..vielen Dank! Dass der µC Suizid macht, möchte ich nicht;-) Habe dann wohl das ein oder andere noch nicht so richtig verstanden.....
Hallo Normalerweise müsste das kein Problem sein wegen deiner Leistungbedenken. Weil du das Zählen der Periodendauer sowieso mit Interrupts machst. PWM sind auch in HW realisiert also dürftest du mit einem µC auskommen. Mfg Patrick
@falk
Danke, werde mich mit den von Dir angeregten Lösungsansätzen
auseinandersetzen....
>Also y = 65/x, macht bei dir Frequenzen von 26-130 Hz.
Was meine x / y Sache angeht dachte ich folgendermaßen:
Wenn x beispielsweise 1.24 Hz wäre, dann rechne ich y= 65/1,24=52,4193..
ergibt Faktor 52, 52x1.24Hz ergäbe dann 64,48Hz
oder in ms:1.24Hz = 0,8064ms
y=65 x 0,8064516 = 52,419354 ergibt ebenfalls Faktor 52 / 0,806451 =
64,480049 Hz
Thomas
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.