www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik pic timer output compare


Autor: schnudl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
MCU: dsPIC30F4013

Ich habe ein rätselhaftes Problem bei einem Timer-2, dem ich mit Output 
Compare verwende, um ein Steuersignal für ein SC Filter zu erzeugen.

Der Timer-2 wird bei Erreichen der angegebenen Periode (PR2 Register) 
wieder auf Null gesetzt. Gleichzeitig ist das Output Compare Modul auf 
Toggle gestellt, sodass bei jedem Match der zugeordnete Pin toggelt.

Der Timer(2) läuft geclocked mit 10MHz. Aufgrund des Toggelns ist die 
erwartete Frequenz am OC-Pin

f(erwartet) = 10MHz/(2*PR2)

Nun habe ich dies mit verschiedenen Werten für PR2 ausprobiert:
PR2     T (gemessen)    T(erwartet)     Verhältnis
10000  2,00E-03         0,002           1,00E+00
1000   2,00E-04         0,0002          9,99E-01
100    2,02E-05         0,00002         9,90E-01
20     4,20E-06         0,000004        9,52E-01
10     2,20E-06         0,000002        9,09E-01
5      1,20E-06         0,000001        8,33E-01
3      7,95E-07         0,0000006       7,55E-01

Wieso wird die Frequenz bei kleinen werten von PR2 deutlich kleiner als 
der erwartete Wert?? Der Timer und das OC läuft ja autonom und nicht 
firmwaregesteuert. Es gibt auch keinen aktivierten Interrupt. Eine 
Verzögerung beim Erkennen des OC-Kriteriums müsste doch bei der 
steigenden und fallenden Flanke gleichermassen zuschlagen. Wie kann man 
die Frequnzänderung erklären?

Nur falls das hilft:
T2CONbits.TON = 0;
TMR2  = 0x0000;
PR2   = t2_period;
T2CONbits.TCKPS = t2_prescale; // = immer uaf 0x0, d.h. Prescale = 1
OC1R = t2_period;
T2CONbits.TON = 1;

Autor: schnudl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hat sich geklärt. man muss natürlich eins zu der periode dazuzählen, da 
0 ja auch ein gültiger wert für den zählerstand ist.

dann stimmts perfekt.

;-)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.