Hallo. Folgende Situation: Es soll mit hilfe von PWM ein Sinussignal erzeugt werden. PWM-Mode --> "center align", am Ende der Zählerperiode wird ein Interrupt ausgelöst und in der Interruptroutiene die Pulsbreite verändert. Sieht schon mal alles passabel aus aber Sinus "zittert" zu sehr und an manchen Stellen der PWM sieht man, daß die Pulsbreiten variieren (sprich an der selben Stelle mal breiter mal schmaler). Vermute, daß dieses Zittern an der Variation von Pulsbreiten liegt. Außerdem ist das ganze schwer zu triggern und deswegen habe mir an einem Pin ein Triggerimpuls in der Sinusfrequenz ausgeben lassen. Habe zu meinem Erstaunen aber eine Frequenz von 100kHz festgestellt. D.h. doch, daß µC ständig in die Interruptroutine geht, oder?? Dies erklärt auch die variierenden Pulsbreiten an den selben stellen und daraus folgendes "Zittern" des Sinus, da sich die Pulse bei zu schnellem Interruptaufruf überlagern Muß man da irgendwie Interrupt zwischendurch ausschalten, oder irgendwelche Bit setzen?? µC: AT91SAM7S256 Board: AT91SAM7S-EK Umgebung: IAR
das war der Übeltäter /* It is forbidden to continue before updating of the PWM period */ while(AT91C_BASE_PWMC->PWMC_ISR !=1); jetzt ist die Triggerfrequenz OK
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.