Maxigraf
15.08.2007, 04:22
Hallo
also ich versuche derzeit eine Fernbedienung zu baun ;)
Ich verwende dafür nen PIC18LF2685, nen 20 Mhz Quarz und ne Infrarot LED
Für die Tasten hab ich gemäß der Anleitung auf Sprut.de ne 2x6 Tasten Matrix gebastelt (oder 6x2, je nachdem ;))
Das funktioniert soweit gut, die Tasten kann ich auslesen, die LED zum leuchten bringen (habs mit der Handykamera gecheckt :D)
So, jetzt mein Problem:
Ich hab von der Fernbedienung die Timings mit WinLIRC ausgelesen und dementsprechend mein Programm geschrieben, mit Verzögerungsroutine etc.
Wenn ich das Programm im Simulator debugge, dann sind die Verzögerungen auch genau richtig von der Länge her, wenn ich das Programm dann aufm Chip teste, sind die Timings auf einmal viel kürzer.
Beim Debuggen komm ich z. B. auf 600 µs, der Chip macht daraus scheinbar 200 µs oder so ;) (Ich lasse mir die Ausgabe per WinLIRC RawCodes anzeigen)
Abgesehn davon variieren die Timings auch ständig, obwohl sie weitgehend gleich sein müßten.
Der Quarz hat zwar womögliche ne gewisse Ungenauigkeit, aber die sollte nicht so stark sein.
Ich hänge den Sourcecode mal an, vielleicht kann mir ja wer sagen, was ich falsch gemacht hab?
Vielleicht hab ich auch die Werte in dem WinLIRC config file falsch interpretiert, aber die sollten eigentlich alle in µs angegeben sein
Also ich hab mal ne Schleife für ne 1 sekündige Verzogerung eingebaut, die hat ziemlich gut funktioniert.
Gut, lief zwar etwas zu schnell, aber hm, das war erst nach 5 Minuten oder so wirklich wahrnehmbar (ok, das is vermutlich relativ viel auf den µs-Bereich übertragen, oder? ;))
Hm, wie krieg ich denn den Quarz genauer?
Hilfe... Ich weiß nicht mehr weiter ;)
Aber danke schonmal, für eure Hilfe :D
Achja, hier mal der Output von WinLIRC wenn ich ne Taste drücke:
pulse 183
space 428
pulse 152
space 1732
pulse 186
space 424
pulse 154
space 2325
pulse 151
space 4261
pulse 209
space 398
pulse 107
space 4279
pulse 106
space 504
pulse 158
space 1734
pulse 289
space 318
pulse 110
space 1779
pulse 155
space 456
pulse 154
space 1735
pulse 346
space 266
pulse 108
space 1780
pulse 158
space 403
pulse 179
space 1761
pulse 214
space 2286
pulse 105
space 504
pulse 108
space 1780
pulse 106
space 3009
pulse 103
also ich versuche derzeit eine Fernbedienung zu baun ;)
Ich verwende dafür nen PIC18LF2685, nen 20 Mhz Quarz und ne Infrarot LED
Für die Tasten hab ich gemäß der Anleitung auf Sprut.de ne 2x6 Tasten Matrix gebastelt (oder 6x2, je nachdem ;))
Das funktioniert soweit gut, die Tasten kann ich auslesen, die LED zum leuchten bringen (habs mit der Handykamera gecheckt :D)
So, jetzt mein Problem:
Ich hab von der Fernbedienung die Timings mit WinLIRC ausgelesen und dementsprechend mein Programm geschrieben, mit Verzögerungsroutine etc.
Wenn ich das Programm im Simulator debugge, dann sind die Verzögerungen auch genau richtig von der Länge her, wenn ich das Programm dann aufm Chip teste, sind die Timings auf einmal viel kürzer.
Beim Debuggen komm ich z. B. auf 600 µs, der Chip macht daraus scheinbar 200 µs oder so ;) (Ich lasse mir die Ausgabe per WinLIRC RawCodes anzeigen)
Abgesehn davon variieren die Timings auch ständig, obwohl sie weitgehend gleich sein müßten.
Der Quarz hat zwar womögliche ne gewisse Ungenauigkeit, aber die sollte nicht so stark sein.
Ich hänge den Sourcecode mal an, vielleicht kann mir ja wer sagen, was ich falsch gemacht hab?
Vielleicht hab ich auch die Werte in dem WinLIRC config file falsch interpretiert, aber die sollten eigentlich alle in µs angegeben sein
Also ich hab mal ne Schleife für ne 1 sekündige Verzogerung eingebaut, die hat ziemlich gut funktioniert.
Gut, lief zwar etwas zu schnell, aber hm, das war erst nach 5 Minuten oder so wirklich wahrnehmbar (ok, das is vermutlich relativ viel auf den µs-Bereich übertragen, oder? ;))
Hm, wie krieg ich denn den Quarz genauer?
Hilfe... Ich weiß nicht mehr weiter ;)
Aber danke schonmal, für eure Hilfe :D
Achja, hier mal der Output von WinLIRC wenn ich ne Taste drücke:
pulse 183
space 428
pulse 152
space 1732
pulse 186
space 424
pulse 154
space 2325
pulse 151
space 4261
pulse 209
space 398
pulse 107
space 4279
pulse 106
space 504
pulse 158
space 1734
pulse 289
space 318
pulse 110
space 1779
pulse 155
space 456
pulse 154
space 1735
pulse 346
space 266
pulse 108
space 1780
pulse 158
space 403
pulse 179
space 1761
pulse 214
space 2286
pulse 105
space 504
pulse 108
space 1780
pulse 106
space 3009
pulse 103