Hallo. Ich möchte den RC5-Code meiner Fernbedienung in Bascom auslesen. Das funktioniert auch ganz gut mit dem Befehl GetRC5. Nun habe ich das Problem, dass GetRC5 sehr lange braucht. Es hält mein gesamtes Programm auf! Gibt es eine andere Möglichkeit, den Code herauszufinden? http://www.sprut.de/electronic/ir/rc5.htm Danke.
Denny schrieb: > Es hält mein gesamtes Programm auf! Nö, muß nicht sein. Man kann es einfach per Interrupt im Hintergrund empfangen: Beitrag "Fernbedien RC5 Empfänger" Peter
Denny schrieb:
> Und wie funktioniert es mit Bascom?
Ich vermute mal, Interrupts sind auch in Bascom möglich.
Ich kann Dir aber den Code nicht umschreiben, da ich kein Bascom kann.
Peter
Ich habe mir den Code mal angeschaut. Ich denke da wird einfach beim Interrupt nach eine festen Zeit jedes Bit ausgelesen. Das gefällt mir allerdings nicht sooo gut.
Denny schrieb: > Ich denke da wird einfach beim Interrupt nach eine festen Zeit jedes Bit > ausgelesen. Stimmt. > Das gefällt mir allerdings nicht sooo gut. Das ist aber Dein Problem. Peter
Peter Dannegger schrieb: >> Ich denke da wird einfach beim Interrupt nach eine festen Zeit jedes Bit >> ausgelesen. > Stimmt. Wenn Du Deine Routinen (rc5.zip in o.a. Thread meinst), stimmt das ja nicht wirklich, denn da berechnest Du jedes Bit aus dem Abstand der Flanken. Du liest lediglich den Eingang mit einem festen Zeitraster aus - das meinte Denny aber IMO nicht. >> Das gefällt mir allerdings nicht sooo gut. > Das ist aber Dein Problem. Mir gefällt das sehr gut, denn diese Routinen haben die beste korrekte Erkennung (und vor allem die geringste Falscherkennung) aller RC5-Receiver, die mir bisher untergekommen sind. Und das sind viele :-) Axel.
Wie lange ist sehr lange? Gibt es Unterschiede für den Fall, dass kein RC5 Code anliegt (Timeout), d,h, ist GetRC5 schneller, wenn ein RC5 Code kommt? Dann bräuchtest du doch GetRC5 nur aufzurufen, wenn wirklich ein RC5 Code kommt. Ob einer kommt kannst du abfragen, wenn du das Signal auf der Leitung vom RC5-Empfänger zum AVR beobachtest. Im Ruhezustand ist diese Leitung HIGH. Das Abfragen an sich kannst du mit Polling oder im Interrupt machen. Es kann sein, dass durch das eigene Abfragen das erste Bit der ersten Sequenz verloren geht, hängt davon ab, wie schnell dann GetRC5 aufgerufen wird und wie diese Bascomfunktion programmiert ist. Aber die Sequenzen werden normalerweise mehrmals gesendet, so dass du doch eine gültige erwischen wirst.
Naja. Es scheint wohl keine andere Lösung zu geben. Ich habe nach vielen Stunden (ehrlich!) endlich eine Lösung für Bascom gefunden. Beitrag "RC5-Auswertung Problem" Danke an den Programmierer! Es funktioniert alles ganz gut. Jetzt kann ich mich sehr lange damit beschäftigen, den Code zu verstehen. Also vielen Dank an alle! Ihr habt mir sehr geholfen!
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.