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..

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
Und heraus kam dieses ca. 12µS Gebilde:
Bild hier  

Allerding nur wenn ich keine Last am Pin hatte.

Hätte nicht gedachte das es so schwer ist ne Frequenz zu erzeugen.