Wie mache ich aus einem Rechtecksignal ein PWM Signal?

Gast #1440554
Hallo!

Ich habe folgendes Problem:

Ich hab einen Atmega8 und lasse verschiedene Frequenzen am PB1
Pin ausgeben!

Das funktioniert ziemlich gut aber ich würde dieses Rechtecksignal gerne
noch Pulsweiten regulieren bzw. auf eine bestimmte Pulsweite einstellen!

Ich arbeite bei meinem µC mit BASCOM und dem Register Tccr1a, & Tccr1b
damit ich meine Frequenze ändern kann.( dabei lasse ich beim Compare1a 
toggeln)
Wenn ich die Frequenzen ändern kann, dann kann ich kein PWM Signal 
erzeugen oder ich mach nur ein PWM aber da ist die Frequenz fix.
Irre ich mich da?? Oder geht das doch gemeinsam??

Weiß vielleicht irgendwer ein Bauteil mit dem ich das sonst realisieren 
kann??

Ich hoffe es kann mir wer helfen!

Lg
Bernd
Gast #1440576
Das geht ohne Probleme.

In den PWM-Modes 8, 10 und 14 wird die Obergrenze des Timers
und damit die PWM-Frequen im Register ICR1 festgelegt.

Den PWM-Wert setzt man in OCCR1a/b (für PB1/2), dieser muß natürlich 
kleiner als ICR1 sein.

Die Ausgabe (Set/Clear) bestimmt man über COMA/B 1/0 im TCR1A .

Steht alles im Datenblatt unter Timer1 ;)

avr
Gast #1440581
Hi

>Ich hoffe es kann mir wer helfen!

Was hindert dich die PWM des Timers zu aktivieren. Wenn ihr 
BASCOM-Jünger schon nicht so gerne Datenblätter lest, solltet ihr 
wenigstens die BASCOM-Hilfe benutzen.

MfG Spess
Gast #1445692
Sorry aber ich Programmiere noch nicht lang und kenne mich nicht so aus!

Wie spreche ich diese Register genau an?
Ich werde aus dem Datenblatt anscheinend nicht so schlau wie ihr!

Hab nämlich schon Probiert das WGM 13 zu acktivieren! Aber sobald  ich 
das mache ist meine "änderbare" Frequenz dahin!

Bitte um HILFE!!


Lg
Bernd
#1445715
Bernd schrieb:

> Hab nämlich schon Probiert das WGM 13 zu acktivieren!

Für welchen Modus?

> Aber sobald  ich
> das mache ist meine "änderbare" Frequenz dahin!

Logisch.
Das geht dann alles ganz anders.
Die Frequenz wird, je nach Modus, über ein einziges Timerregister 
eingestellt.
Gast #1445782
und welches Register??

Ich kenn mich schon garnicht mehr aus!

Also so hab ich das bis jetzt!

Tccr1a = &B01000000
Tccr1b = &B00001101

und bei Compare1a = 2571.42 lasse ich toggeln!

Ich verstelle immer das "Compare1a" und schon habe ich meine änderbare 
freuequenz!

Jetzt ist mein Problem, dass da ein Rechteck rauskommt und ich hätte 
gern nur einen Impuls bzw. eine Pulsweite.

Welche Register muss ich da jetzt nehmen??

Sorry das ich nicht so auskenne aber ich mach das erst seit ein paar 
Monaten!

Lg
Bernd

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.