Hallo Biene Maja (hier bekannt als M1.R),
"Honig, Honig, Honig" deine Übersetzung von 'Schwafelei'. \/
Das ist gut wenn du dir Zeit nimmst, denn es ist tatsächlich nicht so einfach der Initialisierung und dieser 'undurchsichtigen' Zeile mit dem += 0x25 im Interrupt zu folgen.
Hier noch ein Hinweis zu dem von mir nicht beschriebenem:
'Output Compare Mode' setzen auf 'Set OC2 on Compare Match, clear OC2 at TOP'
Dies ist nicht relevant für unsere Zeitbetrachtung. Es ist aber sehr wichtig für die Funktionsweise der IR-Kommunikation.
Die eine Seite der Sende-IR-LED hängt ja am Port-Pin PB3. Dieser ist durch die Initialisierung in Init() mit dem Register-Bit OC2 verbunden.
Wenn also dieser ominöse 'Output Compare Mode' ein 'Set OC2' und 'Clear OC2' macht, heisst dies, dass an diesem Port-Pin mal +5V (Set) und mal 0V (Clear) anliegen. Somit wird das Licht an der Sende-LED genau mit den 36kHz ein- und ausgeschaltet. Das passiert aber auch nur dann, wenn überhaupt Strom durch die LED fliesst. Dies kann nur bei 'Set OC2' und 0-Datenbit am Sendeausgang Tx passieren.
Somit werden 0-Datenbits als Licht mit 36kHz getaktet gesendet.
1-Datenbits hingegen bleiben im Dunkeln verborgen.
--> Und genau so möchte der Empfänger die Daten haben. <-- 'Tolle Kiste'
Des weiteren möchte der Empfänger am liebsten haben, dass dieses ein- und ausschalten so passiert, das 'ein' und 'aus' (möglichst) gleich lang sind.
Dafür zuständig ist noch das
--- OCR2 = 0x91; // duty cycle fuer 36kHz <-- Schlechter Kommentar, sollte eher 'duty cycle 50% bei 36kHz' lauten.
- clear OC2 at TOP <-- TOP bedeutet hier, dass TCNT2 bei 255 angekommen ist.
- Set OC2 on Compare Match <-- bedeutet hier, dass TCNT2 bei OCR2 angekommen ist.
0x91 sind ja 145
'Set OC2' also bei TCNT2 von 145 bis 255. Sind (grob gerechnet) 110 Takte
Von 255 über 0; plus die 37 im Interrupt und dann wieder bis 145 sind nun auch (grob gerechnet) 110 Takte.
Also 110 Takte Licht an und auch 110 Takte Licht aus. <-- Schon wieder eine 'Tolle Kiste', da dies die 50% sind.
Auch hier: 'Eile mit Weile' beim lesen und verstehen.
Gruß Sternthaler
Lesezeichen