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
> Timer vorgeladen=176
Das ist bei eine PWM schon mal mies.
Warum vorladen? Nimm einen Timer der CTC Modus kann, bzw einen der dir
bei einer PWM den Top Wert vorgeben lässt.
Und dann zeig dein Programm.
Hi Statt deiner verbalen Beschreibung wäre der tatsächliche Code hilfreicher. MfG Spess
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
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.
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
Hi >Timer1 = 176 >Timer2 = 176 Lies mal in deiner BASCOM-Hilfe was das bedeutet. MfG Spess
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.
Hi >Jetzt habe ich 15,62kHz wie erhöht man das PWM Signal jetzt >richtig leuider steht in der Hilfe nichts drin. Was willst du erhöhen? MfG Spess
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
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
spess53 schrieb: >>Das Zauberwort heißt, wie bereits gesagt, CTC. Such doch mal danach... > > Er will aber den Tastgrad mit dem ADC beeinflussen. Wenn der Timer 2 Compare-Units hat, geht das schon. Aber wenn nicht, dann geht's nicht, da hast Du Recht. Gruß Jonathan
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.