Forum: Mikrocontroller und Digitale Elektronik GetRC5 zu langsam


von Denny (Gast)


Lesenswert?

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.

von Peter D. (peda)


Lesenswert?

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

von Denny (Gast)


Lesenswert?

Und wie funktioniert es mit Bascom?

von Peter D. (peda)


Lesenswert?

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

von Denny (Gast)


Lesenswert?

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.

von Peter D. (peda)


Lesenswert?

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

von Axel K. (axelk)


Lesenswert?

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.

von Stefan B. (stefan) Benutzerseite


Lesenswert?

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.

von Denny (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.