Hallo,
habe Dein ursprüngliches Programm nochmal unter die Lupe genommen.

Zitat Zitat von R2D2 Bastler Beitrag anzeigen
Bild hier   Zitat von Searcher Bild hier  
Abhilfetest: Nach "Timer1 = 155" ein "set tifr.tov1" (vorsorglich anstehendes TOV1 Flag löschen) einfügen?
Du wirst lachen, genau das hatte ich auch schon im Code, allerdings blieb die Kontroll-LED dann aus
Ist auch richtig und muß drinbleiben UND der INT0 Interrupt in der "Daten_sammeln:" ISR wird zu früh enabled. Es könnte je nach übertragenem Bit noch ein rising edge auftreten, da ja in der Mitte eines Bits gepollt wird.

Also das Enable INT0 aus der ISR rausnehmen und in der Sendepause einfügen, wenn sich sicher nichts mehr an INT0 tut. Außerdem sollte das "Ir_data" initialisiert werden. Habe es mit dieser Sendepause mal getestet, allerdings nicht sehr ausgiebig. Geht.

Code:
'Sendepause einlegen
Ddrb.0 = 0
Waitus 2000
Set Gifr.intf0
Ir_data = 0
Enable Int0