Hallo, klemm bisschen fest und hoffe ihr könnt mir weiterhelfen. ich möchte 3 PWM-Signale erzeugen: PWM-A mit einer Frequenz von 500 Hz PWM-B und PWM-C mit einer Frequenz von 1250 Hz Dafür habe ich beim MSP430 Port2.1(TB0)für PWM_A, Port2.2(TB1)für PWM_B und Port2.3(TB2) für PWM_C vorgesehen. Timer B hab ich bis jetzt so eingestellt: BIS.W #TBSSEL0+CNTL1+CNTL0+MC0+ID1+ID0,&TBCTL Ich möchte im Output-Mode 7 arbeiten da ich mein Puls-Pausen-Verhältnis im Programm variieren möchte. ACLK(32768) ist meine Eingangsfrequenz, der Vorteiler ist auf /1 Die Formel t=(nccr0+1)*k/fclk fclk=input-divider-eingangsfrequenz k vorteiler nccr0 zählerstand CCR0 umstellen auf nccr0=(t*fclk/k)-1 nccr0=((1/500)*32678)-1 bekomme ich nccr0=64,536 heraus. Trage ich den Wert 64,536 jetzt in das TBCCR0 Register? Und was sagt die nächste Formel tpw=n*(k/fclk) aus?
2 PWMs mit zwei unterschiedlichen Frequenzen sind nur mit zwei Timern möglich (afaik). Zweites Problem (sehr häufiger Fehler ;) ) TB0 / TA0 hängen am CC0 Register, sind somit NUR für die Frequenzeinstellung benutzbar. Zum Thema PWM mit MSP sollte es ja ansonsten sehr viele Beispiele im Netz geben. Ich verweise mal auf dieses: http://www.mathar.com/msp_disco1.html
Danke, bin schon ein großes Stück weiter gekommen! Jetzt bin ich wieder an der Formel angelangt und stehe wieder vor dem Problem mit den nccr0 Eintrag in das TBCCR0-Register. fclk=32768 k=1 t=0,0008 (f=1250) laut formel kommt für nccr0 25,2144.... Vielleicht denke ich einfach zu kompliziert...
Ob das mit dem -1 stimmt weiß ich jetzt nicht, aber sonst sind deine
Werte für CC0 korrekt.
>Trage ich den Wert 64,536 jetzt in das TBCCR0 Register?
Ja. Halt 65 oder 64 je nachdem wohin du deine Abweichung haben willst.
Alternativ den Takt erhöhen, dann wird's genauer.
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.