CTC und DutyCycle einstellen?

Gast #2392923
Lesenswert?
• ▲
▼
Hallo,

in meinem Projekt möchte ich mittels des Timer1 zwei Rechtecksignale 
erzeugen, welche zueinander Phasenverschoben sind.
Hierzu habe ich einen Mega8 zur Verfügung.

Ich habe mir vorgestellt, dies mit dem CTC(Mode12) zu lösen. Hierzu 
hatte ich nach suchen bei Google mal diesen Tipp bekommen.

Hier der Code:
1
#define F_CPU 16000000
2
#define F_SIGNAL 60000
3
#define DC 60
4

5
// Timer1 initialisieren
6
  TCCR1A |= (1<<COM1A0)|(1<<COM1B0);        // Toggle Pin on Compare      
7
  TCCR1B |= (1<<WGM12)|(1<<WGM13);        // CTC / Mode 12 
8
  ICR1 = ((F_CPU/F_SIGNAL)/2)-1;        // Gewünschte Frequenz
9
  OCR1A = (ICR1*DC)/100;              // Duty-Cycle
10
  OCR1B = 0.5*OCR1A;                // Phasenverschiebung um 90°

Leider funktioniert das bei mir nicht richtig.

Ich bekomme die richtige frequenz an OC1A/OC1B heraus.
Das Tastverhältnis ist jedoch immer 50%
Wenn ich OCR1B ändere passiert nichts, jedoch wenn ich OCR1A ändere, 
ändert sich die Phasenverschiebung.

Woran kann es leigen, dass der beschriebene Code nicht richtig läuft. 
Oder habe ich doch etwas mit dem CTC Mode nicht verstanden?
Gast #2392968
Lesenswert?
• ▲
▼
Ja Toggle-Pin ist mir schon klar.
Wahrscheinlich steckt dann auch hier irgendwo der Fehler, wenn ich immer 
nur bei der halben Frequenz toggle.

@Peter: könntest Du mir einen Tipp geben, wie ich das dann richtig 
einstellen muss.
Gast #2393095
Lesenswert?
• ▲
▼
Beim togglen muß zwangsläufig ein 50% Duty-cycle rauskommen, das ist nun 
mal so. Ich glaube du hast das mit der Phasenverschiebung nicht 
verstanden. Phasenverschiebung hat nichts mit Duty-Cycle zu tun. Der 
Code ist Richtig deine Definition des Problems ist falsch.

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.