Einzelnen Beitrag anzeigen

Reinhard Kern

Registriert seit: 22. Okt 2006
772 Beiträge
 
#5

Re: Wie Signale einer IR Fernbedienung für ComPort empfangen

  Alt 10. Okt 2007, 18:07
Zitat von shmia:
Bei 1.78 ms nützt ein Timer nichts mehr.
Wenn die Sache überhaupt Erfolg haben soll, muss dein Programm ständig den Pin DCD abfragen.
Bei jedem Wechsel des Zustand muss der Wert eines hochauflösenden Zählers in einem Array oder Liste gespeichert werden.
Delphi-Quellcode:
type
   TDCDEvent = record
      bitvalue : boolean;
      counter : Int64;
   end;
var
   DCDevents : array[0..14] of TDCDEvent;
Nachdem man 14 Mal den High-Zustand gesehen hat, kann man raus aus der Routine und muss das Array auswerten.
Ich würde das Array erst mal als CSV-Datei speichern und manuell auswerten, um zu sehen, ob man daraus überhaupt einen RC5-Code erkennen kann.
Hallo,

das ist längst nicht alles:

1.78 ms ist die Zeit für ein ganzes Bit - die Hälfte Hi, die Hälfte Lo. Und um einen Timer auf ein asynchrones Signal halbwegs sicher zu sysnchronisieren, muss man mindestens mit der achtfachen Bit-Frequenz abtasten, so wie bei einem asynchronen UART. Von selbst laufen die Time Interrupts und der IR-Sender ja nicht synchron.

Ausserdem berücksichtigst du nicht, dass für High ja kein Dauersignal, sondern eine Impulsfolge mit Impulsen im µsec-Bereich gesendet wird. Um die nach deiner Methode zu erfassen, müsste man sie erstmal (mit Hardware) integrieren.

Dann erst könnte man langsam anfangen, über Manchester Code nachzudenken. Ich fürchte, bis dahin ist noch ein so weiter Weg, dass ich mich zu dem Thema besser nicht mehr melde.

Gruss Reinhard
  Mit Zitat antworten Zitat