BerndB schrieb:
> Schalte ich dann das Licht ein, wird meine Rotine unterbrochen. Wenn ich
> sie
Was heisst, "die Routine wird unterbrochen"? Ich kann mir ja vorstellen,
dass beim Einschalten des Lichts mal ein NEC-Frame kaputtgeht, aber
danach sollte das Dekodieren ja wieder funktionieren, oder?
> dann erneut starte, das Bürolicht ist dabei an, läuft sie weiter, wird
> aber irgendwann wieder unterbrochen.
Du musst den Dekoder neu starten, damit er weitere Frames lesen kann?
Kann es sein, dass Du keine Fehlerbehandlung im Programm hast? Du
solltest dafür sorgen, dass Deine Statemachine (ich hoffe, Du hast eine)
sich automatisch zurücksetzt, wenn ein Übertragungsfehler auftritt. Das
kann zum Beispiel passieren, wenn Du für x Millisekunden kein Signal
mehr empfängst, obwohl Du eigentlich noch ein Bit erwartest. Setze in
diesem Fall Deine Statemachine wieder auf die Ausgangswerte.
> Es wird besser wenn ich Papier über die IR-Diode lege.
Mit Übertragungsfehlern musst Du immer rechnen. Dein Dekoder sollte dies
berücksichtigen. Das ist auch kein Problem: Stellt der Mensch fest, dass
das Empfänger-Gerät nicht reagiert, drückt er dieselbe Taste auf der
Fernbedienung nochmal. Das ist das normale Verhalten.
> Ein Tiefpass-Filter wird verwendet.
> Modulationsfrequenz: 38kHz
Welche Entfernung? 5-10 Meter sollten immer gehen.
> Decodierung per PIN-Abfrage und Timer via Assembler.
Schau Dir mal zwecks Studium IRMP an. Vielleicht kannst Du Dir da
was abgucken. Ist aber in C geschrieben.
Gruß,
Frank