Hi, die fotos zeigen das IR signal der Taste "ON" von der klassichen billig led Fernbedienung aus China mit NEC Protokol. Wie die aus dem Link nur in klein http://hackaday.com/2012/05/10/reverse-engineering-an-rgb-led-remote/ Ich verstehe die Übersetzung von binär in Hexadezimal nicht, zumindest kommt irgend etwas anderes heraus. Für mich sieht das Signal so aus: Bild adress 0000 0001 1111 1110 lsb msb lsb msb 0x08 0xF7 Bild command 1011 0000 0100 1111 lsb msb lsb msb 0xD0 0x2F Taste "On": adress = 0x08 command = 0xD0 ? Als Programm nutze ich grad das Moodlight (Beitrag "noch ein AVR Moodlight") in dem der IRMP Code drin ist. Code sollte ja funktionieren. /* remote control address and command codes */ #define MY_PROTO IRMP_NEC_PROTOCOL /* IR protocol and */ #define MY_REMOTE 0x08 /* system code */ #define KEY_OPERATE 0xD0 /* on/off */ und als Input Bit: #define IRMP_BIT 4 // use PD4 as IR input on AVR #define input(x) ((x) & (1 << IRMP_BIT)) tut sich aber nix? Viele Grüße Philipp
LSB = Least Significant Byte und was du da hast ist kein Byte sondern nur 4 Bits? Aber das nur nebenbei ;) Hast du mal versucht die Bit-Reihenfolge komplett umzudrehen?
Meinst du mit umgedreht gespiegelt? Bild adress 0000 0001 1111 1110 umgedreht: 1000 0000 0111 1111 0x10 0xEF Bild command 1011 0000 0100 1111 umgedreht: 0000 1101 1111 0010 0x0B 0xF4 adress = 0x10 command = 0x0B geht aucht nicht oder meinst du mit umgedreht invertiert? invertiert: adress: 1111 1110 0000 0001 0xF7 0x08 command: 0100 1111 1011 0000 0x2F 0xD0 adress = 0xF7 command = 0x2F geht aucht nicht? zähle ich falsch?
Ich meine eigentlich dass du die Bits von hinten anfängst zu lesen, könnte es daran liegen?
so von hinten angefangen zu zählen: Bild adress 0000 0001 1111 1110 0x01 0xFE Bild command 1011 0000 0100 1111 0xB0 0x4F adress : 0x01fe command: 0xb04f funktioniert auch nicht. ich weiß auch nich mehr weiter.. Wenn man in den link oben von hackaday klickt und dann auf den ersten link, findet man auch ein Oszi Bild mit dem Code von der Taste "Rot" übersetzt mit 1A, nachvollziehen konnte ich das nicht wie aus: 1010 0010 = 0x1A wird?
Philipp Tholey schrieb: > die fotos zeigen das IR signal der Taste "ON" von der klassichen billig > led Fernbedienung aus China mit NEC Protokol. > Für mich sieht das Signal so aus: > Bild adress > 0000 0001 1111 1110 Das sieht erstmal gut aus, meist sind die zweiten 8 Bit beim NEC-Protokoll invertiert - im Gegensatz zu NEC-Extended. Damit ergibt sich als Extended-Adresse: 807F, denn mit LSB-Reihenfolge ergibt sich: 0000 0001 1111 1110 --------- --------- 80 7F IRMP benutzt prinzipiell bei NEC die allgemeinere Extended-Adresse, also beide Bytes. So kann IRMP das normale und das extended NEC-Protokoll eindeutig identifizieren (und auch per IRSND wieder reproduzieren). > Bild command > 1011 0000 0100 1111 > lsb msb lsb msb > > 0xD0 0x2F Ich lese das als: 1011 0000 0100 1111 --------- --------- 0D F2 Also: Adresse: 0x807F Command: 0x0DF2 > #define IRMP_BIT 4 // use PD4 as IR input on Und IRMP_PORT? (Mittlerweile sieht das in neueren IRMP-Versionen anders aus) > tut sich aber nix? Du könntest das Ergebnis von irmp_get_data() auch auf dem UART oder einem Display ausgeben. Oder anfangs anlernen und dann im EEPROM speichern. Dann kann Dir das konkrete Ergebnis (Addresse + Kommando) egal sein. P.S. Ich wundere mich ein wenig über diese Adresse. Die China-LED-FBs, die ich habe, benutzen eigentlich FF00 als NEC-Adresse. EDIT: Ich habe mich oben vertan, man muss bei der Adresse immer 16 Bit zusammen als LSB lesen und nicht in 8 bit Gruppen. Das Kommando jedoch ist immer 8 Bit breit, denn die letzte 8-Bit-Gruppe ist nur das invertierte Kommando - als Checksum. Dann ergibt sich: Adresse: 0x7F80 Command: 0x0D
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.

