Hallo Sven,
Der Weg den das vielgepriesene Tool geht, geht auch und ist bei niedrigen Frequenzen sogar besser. Bei hohen Frequenzen ist der Weg über Compare günstiger.Code:'------------------------------------------------------------- 'Beispiel für die Verwendung der Capture-Unit als Rechteckgenerator '------------------------------------------------------------- $crystal = 8000000 $regfile = "m8515.dat" ' ## Configuration ' I/O Config Pind.5 = Output ' Hardware ' Timer1 als Timer, Vorteiler=256, bei CompareA-Treffer PinD.5 toggeln Config Timer1 = Timer , Prescale = 256 , Compare A = Toggle ' Interrupts On Compare1a Timer_loeschen Nosave ' Wenn CompareA-Treffer, dann... Enable Compare1a Enable Interrupts ' ## Definitionen Dim Wert As Word ' ## Initialisierung Wert = 20000 'Timer1 zählt bis 20.000 und toggelt dann PinD.5 Compare1a = Wert 'Wert ins Compare-Register schreiben ' ## Hauptprogramm Do Loop ' ## Hauptprogramm ende End ' ## Interrupts Timer_loeschen: ' Wenn Wert erreicht, dann Timer1 = 0 ' Timer1 löschen Return
Zudem lassen sich, wenn man in der Interrupt Routine nicht Timer1=0 sondern Timer1 = Timer1 + Wert setzt, zwei unabhängige Rechtecksignale mit nur einem Timer erzeugen. Die Erzeugung des zweiten geht dann analog über Compare1B.
Gruß Werner







Zitieren

Lesezeichen