Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C Quellcode formatieren: <code>Quellcode</code> BASIC Quellcode formatieren: <basic>Quellcode</basic> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! -> I > Hallo Zusammen, > > ich versuche momentan ein Programm zu erstellen, das mit Timer 1 (Frequenzerzeugung) und Timer 3 (PWM) > realisiert wird. Das Programm habe ich zuerst mit Beispielprogramm zusammen aufgebaut und die erzeugten > Signale werden mit HIlfe von Oszi dargestellt. Es funktioniert bei Frequenzerzeugung aber nicht bei PWM. > > <b> Das Programm von Frequenzerzeugung : </b> > > // FRQ1: Frequenzerzeugung (16 Bit) > // Über den Ausgang wird eine Signal mit einer entsprechend eingestellter > // Frequenz ausgegeben. > // Über den Timer Prescaler wird das Teilungsverhältnis (Oszillatorfrequenz/ps/2) > // festgelegt.(14,7456MHz/ps/2) > /* > Vorteiler (prescaler) Zeitbasis (Dauer eines Ticks) > PS_1 (1) 136 ns > PS_8 (2) 1,085 µs > PS_64 (3) 8,681 µs > PS_256 (4) 34,72 µs > PS_1024 (5) 138,9 µs > */ > void Frequenzerzeugung(void) > { > Timer_T1FRQ(10,PS_1024); // Der Timer erzeugt ein Signal mit > // Periode=34,72 µs*1=34,7 µs, Frequenz= 28,8kHz > while (1); > } > > <b> Das Programm von PWM: </b> > > // PWM3: Pulsweitenmodulation > // Berechnung der Pulsweitenmodulation > // Timer_T3PWM(Par1,Par2,PS); > // Periode=Par1*PS/FOSC (100*64/14,7456MHz=434 µs) > // Pulsweite=Par2*PS/FOSC (25*64/14,7456MHz=108 µs) > // Über den Timer Prescaler wird das Teilungsverhältnis (Oszillatorfrequenz/ps) > // festgelegt. (14,7456MHz/ps) > /* > Vorteiler (prescaler) Zeitbasis (Dauer eines Ticks) > PS_1 (1) 67,8 ns > PS_8 (2) 542,5 ns > PS_64 (3) 4,34 µs > PS_256 (4) 17,36 µs > PS_1024 (5) 69,4 µs > */ > > // Dieses Demo Programm ist nur für Mega128 > #ifdef MEGA32 > #pragma Error "Timer3 nur für Mega128" > #endif > > void PWM(void) > { > Timer_T3PWM(100,20,PS_256); // Berechnung siehe oben > while (1); > } > > <b> und das Hauptprogramm: </b> > > void main(void) > { > Frequenzerzeugung (); > PWM (); > } > > oder sollte ich mit Multithreading realsieren? > > vielen Dank im Voraus.