MSP430 FG4618 - TACCR0 Funktionsweise

OP #1921102
Lesenswert?
• ▲
▼
Hey,

ich schlag mich immer noch mit dem Beispielcode aus der TI Datei 
msp430xG46x_dma_07_CCE.c rum.

Ich hänge da gerade an der Stelle:

  TACCTL1 = OUTMOD_3;                       // TACCR1 set/reset
  TACCR1 = 01;                              // TACCR1 PWM Duty Cycle
  TACCR0 = 025-1;                           // Clock period of TACCR0
  TACTL = TASSEL_2 + MC_1;                  // SMCLK, upmode

Explizit Zeile 3. Was genau bedeutet diese?

Wenn ich mein Sinussignal an dem entsprechenden PIN abgreife, erhalte 
ich eine Frequenz von 1,5 kHz pro Periode. Wie kommt diese Frequenz 
zustande und wie kann ich sie ändern?
Gast #1921257
Lesenswert?
• ▲
▼
Hallo,

ohne mich mit deinem BSP auseinandergesetzt zu haben, im Upmode beginnt 
der Zähler bei 0 und zählt bis er TACCR0 erreicht hat. Danach beginnt er 
wieder bei 0 usw.
Wie schnell von 0 bis 25-1 gezählt wird, bestimmt die Clockeinstellung.
Du hast SMCLK als Clocksource eingestellt. Schau nach mit welcher 
Frequenz die Taktung von SMCLK erfolgt.

Ob nun eine Periode des Zählers (also 0 bis 24) auch eine Periode deines 
Sinus ist, weiß ich nicht ohne mir den Rest des Code anzuschauen.

Nimm Dir den USERGUIDE zu deinem MSP und lies das Kapitel Basic Clock 
Module.
Finde heraus was ein Lookuptable im Zusammenhang mit der Erzeugung von 
Sinussignalen ist.


Viel Spass
ich
OP #1921962
Lesenswert?
• ▲
▼
Hi,

also in der Datei steht als Beschreibung folgendes:

//   Description: DMA0 and DMA1 are used to transfer a sine and cos 
look-up
//   table word-by-word as a repeating block to DAC12_0 and DAC12_1. The
//   effect is sine and cos wave outputs. Timer_A operates in upmode 
with
//   TACCR1 loading DAC12_0 amd DAC12_1 on rising edge and DAC12_OIFG
//   triggering next DMA transfers. DAC12_0 and DAC12_1 are grouped for
//   jitter-free operation. ACLK = LFXT1 = 32768Hz, MCLK = SMCLK = 
default
//   DCO = 32 x ACLK = 1048576Hz

Demzufolge wäre mein SMCLK = 1048576Hz , oder?

Das Register TACCRO wird jedoch mit dem Takt von ACLK abgezählt. Denn 
wenn ich dort die Dezimalzahl 32768 eingebe, ist meine Periode genau 1 
Sekunde lang. [Wieso wird an dieser Stelle überhaupt mit Oktalzahlen 
gearbeitet?] D.h. der Takt gibt an, in welcher Zeit der Ausgang vom DAC 
die Werte ausgibt.

Mit meinen 32 Werten aus der LookUpTable, die im DMA Speicher hin und 
her geschoben werden, um diese dann vom DAC umzuwandeln und auszugeben, 
erhalte ich bei einem TACCRO = 32768 eine Periode von einer Sekunde.
Halbiere ich TACCR0, verdoppelt sich die Periode auf 2 Perioden pro 
Sekunde.

Kann man sagen, dass der Sinus durch die 32 vorgegebenen Werte mit einer 
Periode aus der LookUpTable schon fest gespeichert ist und er durch den 
Wert im TACCR0 nun die Frequenz dieses Sinus eingestellt werden kann?

Denn wenn ich eine Sinusperiode, erzeugt aus 32 Werten, als "Bild" 
festlege (nur mal angenommen ;)) und er bei TACRR0 = 32768 ein "Bild" 
pro Sekunde ausgibt ... und man dann TACCR0 halbiert und er 2 "Bilder" 
pro Sekunde ausgibt ... entspricht diese Frequenz der "Bildinformation" 
... in meinem Fall dann 2 "Bilder" pro Sekunde = 2 "Sinusperioden" pro 
Sekunde.

Könnt ihr mir folgen ^^

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.