Für dieses Forum muß Javascript im Browser aktiviert werden!
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> C2 Quellcode formatieren: <code>Quellcode</code> ASM Quellcode formatieren: <asm>Quellcode</asm> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! > Hallo André, > > vielen Dank für Deine Antwort. > > > Welches Problem ? > > Das Problem ist im Moment auch weniger der Einzelimpuls, sondern vielmehr die Tatsache, > daß ich an den Werten der PWM überhaupt nichts mehr ändern kann, wenn sie mal läuft, > ich kann auch das Tastverhältnis nicht mehr verändern. > > Leider hängt der PC, auf dem sich das Programm befindet, nicht am Netz, hat nur ein CD-ROM > und der USB-Port ist defekt. Daher veruche ich jetzt mal, das Programm > als Pseudocode aus dem Kopf zu wiederzugeben, ich versuche aber trotzdem, es noch irgendwie ranzuschaffen: > (Wie gesagt, es geht im Moment erst mal nur darum, wie ich die Werte der PWM ändern kann) > > <pseudocode> > Steuerungsregister für PWM einstellen > Vergleichsregister = 0x8888 > Timer starten (TRx =1) > int i = 0xFFFF > > /* Ab hier wird das Programm nun anscheinend nicht weiter abgearbeitet */ > > while (i > 0) > { > Vergleichsregister = i > i = i - 1 > } > Timer anhalten (TRx = 0) > </pseudocode> > > > Ich glaube Du verstehst den Sinn eines PWM-Ausgangs falsch. > > Ist mir durchaus klar, wozu man eine PWM normalerweise benutzt. Dies sollte auch eine Art > "Workaround" werden. > > > Du willst jedoch nur einen einzelnen Impuls ausgeben. > > Letztlich, ja. > > > Das einfachste wäre, wenn Du eine Interruptroutine an den 1ms Timer-Interrupt hängst, die > > bei jedem Aufruf einen Zählerwert dekrementiert, bis 0 erreicht ist. > > Während der Zählerwert ungleich 0 ist, wird ein beliebiger Port auf high gesetzt. > > Sobald der Wert 0 erreicht ist, wird der Port auf Low gesetzt. > > Hmm... ...so was ähnliches hab ich mit der PWM versucht. Ich wollte den Reload-Interrupt des Compartimers nutzen. > Hier gab es allerdings das Problem, daß gar nichts mehr ausgeführt wurde, sobald ich die Interruptroutine > im Programm hatte. (Mit "gar nichts" meine ich, daß ich am PWM-Ausgang nichts mehr messen konnte...) > Ich werde jetzt versuchen, den Quellcode irgendwie beizutreiben. Das mit dem !ms-Interrupt verfolge ich mal weiter. > > Gruß, > Harald > > > MfG André H. > >