So hab grad nochmal was anderes probiert.
Hatte folgenden Text gefunden und für euch mal angepasst.
Bei 40 KHZ beträgt die Zykluszeit 1 / f = 1 / 40000 = 25µs. Bei einem 50% Duty-Cycle muß du das Signal 12,5 µs einschalten und 12,5 µs ausschalten.
Timer 0 kann sich bei 16 MHz alle 160 ns um eins erhöhen. Also in 12,5 µs ungefähr 200 mal.
Der Timer erzeugt beim erreichen von 255 auf 256 einen Overflow Interrupt. Wenn ich jetzt den Timermit 255 - 200 = 55 vorlade, erreichst ich alle 12,5 µs einen Interrupt..
Und heraus kam dieses ca. 12µS Gebilde:Code:$regfile = "m8def.dat" $crystal = 16000000 $hwstack = 32 $swstack = 10 $framesize = 40 Config Timer2 = Timer , Prescale = 1 On Timer2 Tim0_isr Enable Timer2 Enable Interrupts Do Loop Tim0_isr: Tcnt0 = 130 Toggle PORTB.1 Return
Bild hier
Allerding nur wenn ich keine Last am Pin hatte.
Hätte nicht gedachte das es so schwer ist ne Frequenz zu erzeugen.







Zitieren

Lesezeichen