ch nehme mal an, dass Du mit "Ausgang" das Output-Compare-Register meinst und PWM im "CTC"-Modus laufen lassen möchtest.

Für 36 KHz muss der Output-Compare-Pin alle 1/(2*36000) Sekunden getoggelt werden. Um zu wissen wie weit der Zähler in dieser Zeit zählt, musst Du nur schauen, wie oft eine Takt-Periode in diesen Zeitraum passt:

(1/72000) / (1/8000000) oder 80000000 / 72000 = 111,111... mal.

Die Formel für "andersrum" heißt: PWM-Frequenz = Quarzfrequenz / (2 * OCR). In diesem Fall also 8000000 / 222 = 36036,036 Hz. Für exakte 36 KHz bräuchtest Du ein Quarz, dessen Frequenz ein ganzzahliges Vielfaches von 36kHz ist.
sieht schon mal gut aus die lösung.

nun möchte ich das signal als ausgang nehmen für eine ir-diode bzw für das modluierte signal für den tsop mit 36khz.

beim rc5 signal ist eine 1 889µs den port auf 0 und 889µs den port mit 36khz toggeln. bei einer 0 889µs mit 36khz toggeln und 889 µs port auf 0.

vorher noch 2 startbits auf 1.

wie läuft das ganze jetzt in Bascom ab, dieses rc5-signal von hand?
bei mir sendet die ir-diode nicht, bzw der tsop1736 emfängt kein signal.

wenn ich die demo von Bascom nehme, läuft es, also die verbindung stimmt.

Code:
$regfile = "m32def.dat"
$framesize = 32
$swstack = 32
$hwstack = 64

Config Timer1 = Timer , Prescale = 1 , Compare A = Toggle , Capture Edge = Rising , Clear Timer = 1

Declare Sub Rc5out(adre As Byte , Command As Byte)
Declare Sub Bitlow()
Declare Sub Bithigh()

Dim Adre As Byte
Dim Command As Byte
Dim Togglebit As Byte
Dim I As Byte

Config Pind.5 = Output
Enable Interrupts
start timer1

Compare1a = 110

Adre = 0
Command = 19
Togglebit = 0

Waitms 255

Do

 Call Rc5out(adre , Command)
 Waitms 255

Loop

End

Sub Rc5out(adre As Byte , Command As Byte)

Call Bithigh()

Call Bithigh()

If Togglebit = 1 Then
   Call Bithigh()
Else
   Call Bitlow()
End If

For I = 0 To 4
 If Adre.4 = 1 Then
   Call Bithigh()
 Else
   Call Bitlow()
 End If
 Shift Adre , Left , 1
Next

For I = 0 To 5
 If Command.5 = 1 Then
  Call Bithigh()
 Else
  Call Bitlow()
 End If
 Shift Command , Left , 1
Next

End Sub

Sub Bitlow()
   Ddrd.5 = 1
   Waitus 889
   Ddrd.5 = 0
   Waitus 889
End Sub

Sub Bithigh()
   Ddrd.5 = 0
   Waitus 889
   Ddrd.5 = 1
   Waitus 889
End Sub