Hallo Alexj96,
eine solch hohe Frequenz wirst du mit einer 8MHz Taktfrequenz nicht per Interrupt schaffen.
Dazu dauert die Register Speicherung und das Zurückladen viel zu lange.
Es wäre auch sowieso nicht der richtige Ansatz um eine IR LED anzusteuern. Du musst ja auch noch Zeit haben, aufgrund der Daten den Timer an und auszuschalten.
Dafür ist der CTC Modus besser geeignet:
Config Portb.3 = Output
Config Timer0 = Timer , Prescale = 1 , Clear_timer = 1 , Compare = Toggle
Ocr0 = 110
oder für PortD.5 mit Timer1:
Config PortD.5= Output
Config Timer1 = Timer , Prescale = 1 , Clear_timer = 1 , Compare A = Toggle
Ocr1a = 110
Beides ergibt recht genau 36KHz. Du erzeugst damit die Frequenz komplett in Hardware, also ohne eine Zeile Code zu verbrauchen. Jetzt kannst du dich darum kümmern, per Software den Timer ein und auszuschalten.
Lesezeichen