Hallo, nachdem ich für avr-gcc nichts passendes lauffähiges fand habe ich anhand von http://www.obersomer.com/furios-power/index.php?view=article&id=69%3Airnec&format=pdf&option=com_content&Itemid=66 und http://www.sbprojects.com/knowledge/ir/nec.htm einen auf einem ATmega32 lauffähigen Code erstellt. Die Adresse wird als uint16_t variable ausgespuckt und der Befehl als uint8_t, solange die Daten richtig erkannt wurden. Die lcd.h und lcd.c sind Teil der lib von Peter Fleury Gruß Patrick
Gast
#1493276
... und was möchtest Du uns damit sagen ?
Gast
#1493516
Bestimmt, daß er den Quelltext noch nachreicht...
Hallo Patrick, habe bin gerade durch Zufall hier gelandet und habe festegestellt, dass ich gerade vor dem selbem Problem stehe... Das ganze ist Teil meines Moodlight-Projekts, wofür ich eine Fernbedienung gekauft habe. Und nach einer Runde reverse-engineering und recherche weiß ich nun, dass sie mit dem NEC-Code sendet. Weitere Infos hier: http://madengineer.de/projekte/moodlight/ Ich würde mich freuen, wenn du deinen Code zur Verfügung stellen könntest... Viele Grüße Jan
Gast
#1494296
Ja, der code wäre suuper!
Gast
#1494312
könnte bascom code anbieten,
Naja einen Bascom Link findet man schon in der PDF, die er oben verlinkt hat: http://www.mcselec.com/index.php?option=com_content&task=view&id=223&Itemid=57 Das Problem an diesem Code ist, dass er Interrupt gesteuert ist, hier könnte man dann Probleme mit Störungen bekommen, die dann den µC blockieren. Ich arbeite an einem Timerbasiertem Code, welchen ich in meine Soft-PWM integrieren kann. Aber das Prinzip ist das gleiche: Am Anfang der Routine wird der Port abgefragt, wenn sich im Vergleich zum Vorherigem Aufruf nichts geändert hat, dann wird die Routine wieder verlassen. Nach dieser Flankenerkennung könnte man dann den IRQ-basierten Code weiterverwenden.
Wenn ihr einen Code wollt, der "im Prinzip" auf Peters RC5 decoder aufbaut, hier... Es werden alle 32 empfangenen Bit zurückgegeben, bei der weiteren Auswertung kann man dann entscheiden, ob man Standard oder Erweiterten Code annimmt (8 oder 16 Bit Adresse) und ob man die Negierung zur Fehlererkennung ausnutzt...
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
Gast
#1494431
bei mir werden interrupt nur zum wecken aus dem powerdown mode und der timer nur während des empfangens benutzt. Wird ein spike empfangen, kann der code auswerten, ob ein Startbit empfangen wurde (9ms pause) Bricht eine übertragung ab, gibt es ff,ff,ff,ff als ergebniss
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
35 | |
36 | |
37 | |
38 | |
39 | |
40 | |
41 | |
42 | |
43 | |
44 | |
45 | |
46 | |
47 | |
48 | |
49 | |
50 | |
51 | |
52 | |
53 | |
54 | |
55 | |
56 | |
57 | |
58 | |
59 | |
60 | |
61 | |
62 | |
63 | |
64 | |
65 | |
66 | |
67 | |
68 | |
69 | |
70 | |
71 | |
72 | |
73 | |
74 | |
75 | |
76 | |
77 | |
78 | |
79 | |
80 | |
81 | |
82 | |
83 | |
84 | |
85 | |
86 | |
87 | |
88 | |
89 | |
90 | |
91 | |
92 | |
93 | |
94 | |
95 | |
96 | |
97 | |
98 | |
99 | |
100 | |
101 | |
102 | |
103 | |
104 | |
105 | |
106 | |
107 | |
108 | |
109 | |
110 | |
111 | |
112 | |
113 | |
114 | |
115 | |
116 | |
117 | |
118 | |
119 | |
120 | |
121 | |
122 | |
123 | |
124 | |
125 | |
126 | |
127 | |
128 | |
129 | |
130 | |
131 | |
Gast
#1494433
sorry der fehlt noch: Timer2_irq: Timer2 = Timer2vorgabe Incr Count Return
Hallo Bernhard, vielen Dank für deinen Code. Habe leider derzeit ein Hardwareproblem zu lösen, so dass ich das noch nicht testen könnte.. viele Grüße Jan
Komplett den Anhang vergessen - Sorry wegen der Verspätung!
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.