mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik GetRC5 zu langsam


Autor: Denny (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Denny (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und wie funktioniert es mit Bascom?

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Denny (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Axel Köhler (axelk)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Denny (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.