PWM berechnen

Gast #2470493
Hallo ich habe ein PWM Signal und hoffe das ich das jetzt richtig 
berechnet habe,könnt ihr das mal bitte überprüfen.

Also ich habe:
Quarz=8Mhz
Vorteiler=1
8Bit ADC
Timer vorgeladen=176

Ich habe jetzt folgendes gerechnet

8000000/1/80/2=50000hz=50khz
ist das so richtig?

Ich habe mit dem Oszi gemessen das eine Phase von anfang High zum 
nachsten anfang High lt. Oszi 166,6Hz haben soll oder 6ms.

Was mach ich falsch? Der Atmel steht auf 8Mhz intern
Gast
Hier sind die wichtigsten stellen vom Code habe jetzt nicht den ganzen 
anderen Kram mitgepostet


Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B 
Pwm = Clear Down , Prescale = 1

Config Timer2 = Pwm , Prescale = 1 , Compare Pwm = Clear Up , Pwm = On
Timer1 = 176
Timer2 = 176


Do

Admux = &B01100000
Adcsra.6 = 1
While Adcsra.6 = 1
Wend
Pwm1a = Adch
Admux = &B01100001
Adcsra.6 = 1
While Adcsra.6 = 1
Wend
Pwm1b = Adch
Admux = &B01100010
Adcsra.6 = 1
While Adcsra.6 = 1
Wend
Ocr2 = Adch

Loop
End
Gast
Klamüser doch mal die Analogeingaben und die PWM Ausgaben auseinander.

Die Benutzung von Variablen kostet kein Geld bringt aber uns allen 
Übersichtlichkeit.

Also zuerst die drei Analgeingänge hintereiander lesen und dann die 
Ausgaben machen.
Gast
Ja könnte ich machen aber um es kurz zu halten.

Ich mache:
Lese ADC0
Dann ADCH ins Register compare1a
Lese ADC1
Dann ADCH ins Register compare1b
Lese ADC2
Dann ADCH ins Register OCR2
fertig
Gast
Okay da habe ich irgendwas falsch verstanden.Ich habe das jetzt 
rausgenommen.Jetzt habe ich 15,62kHz wie erhöht man das PWM Signal jetzt 
richtig leuider steht in der Hilfe nichts drin.
Gast
Hi

>Die Frequenz ich möchte 50kHz erzeugen

Möchten und können sind zweierlei. Mit der vollen Auflösung von 8 Bit 
gehen bei einem Takt von 8MHz max. nur 31,25 kHz (Fast PWM). Du hast 
aber 'Phase Correct PWM' eingestellt. Daher hast du nur die Hälfte.

Für 50kHz müsstest du den Zählbereich des Timers auf 0x9F begrenzen. 
Dadurch verlierst du aber auch an Auflösung. Aber wofür brauch man 50kHz 
PWM?

MfG Spess
Gast
Hi

>Brauchen tue ich das für nix wollte es einfach mal machen um dazu zu
>lernen

dann kannst du ja auch mit den 31,25 kHz leben.

>Das Zauberwort heißt, wie bereits gesagt, CTC. Such doch mal danach...

Er will aber den Tastgrad mit dem ADC beeinflussen.

MfG Spess

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 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.