www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik RC5 unsauber Übertragung?


Autor: Michael O. (michi26206)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich hab ein kleines Problem. Und zwar spiele ich im moment mit RC5.

Hier mal mein Bascomcode:
Do

 Getrc5(address , command)
 If Address = 0 Then
    command = command And &B10111111
    Locate 2 , 1
    Lcd "Adr:" ; Address ; "  Cmd:" ; command ; "  "
    If command = 12 Then
       Toggle Portc.1
 End If

Loop

Geht auch soweit wunderbar, nur habe ich manchmal das Problem das ein 
anderer Code an kommt, als wie der Code der Taste die ich gedrückt habe.

Was ist die Ursache dafür, und wie kann ich es beheben?
Ich habe 2 Fernbedienungen, welche im alltags Gebrauch zuverlässig 
arbeiten, bei beiden leigt das gleiche Problem vor.

Gruß Michi262

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Michael O. schrieb:
> Geht auch soweit wunderbar, nur habe ich manchmal das Problem das ein
> anderer Code an kommt, als wie der Code der Taste die ich gedrückt habe.

Die Bascom-Programmiere sind auch nur Menschen. Könnte ein Fehler in der 
Getrc5() sein.
Guck mal, obs irgendwo den Quelltext der Getrc5() gibt oder ne andere 
Getrc5().

Hast Du dem Bascom auch den richtigen Takt Deines AVR angegeben?


> wie kann ich es beheben?

Wenn Dein Takt stimmt, das Getrc5() selber schreiben.

In der Codesammlung gibts ein Beispiel, was sehr fehlertolerant ist. 
Dazu müßtest Du allerdings C können.


Peter

Autor: Michael O. (michi26206)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Peter Dannegger schrieb:
> Michael O. schrieb:
>> Geht auch soweit wunderbar, nur habe ich manchmal das Problem das ein
>> anderer Code an kommt, als wie der Code der Taste die ich gedrückt habe.
>
> Die Bascom-Programmiere sind auch nur Menschen. Könnte ein Fehler in der
> Getrc5() sein.
> Guck mal, obs irgendwo den Quelltext der Getrc5() gibt oder ne andere
> Getrc5().
>
> Hast Du dem Bascom auch den richtigen Takt Deines AVR angegeben?
>

ok. kann sein. da ich keinen externes Quarz habe, habe ich nichts 
angegeben. (wurde mir so gesagt)

>
> Wenn Dein Takt stimmt, das Getrc5() selber schreiben.
>
> In der Codesammlung gibts ein Beispiel, was sehr fehlertolerant ist.
> Dazu müßtest Du allerdings C können.
>
>
> Peter

Ich kann etwas C aber bis jetzt habe ich noch nichts für uC gemacht.
Evtl. soltle ich doch mal damit anfgangen ;) Ma schaun, evtl. kann ich 
ja was daraus verwenden.

Autor: Helge W. (hwaltr01)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

welchen IR Empfänger nutzt du?

setze mal so dicht wie möglich 4,7µF an die Spannungsversorgung der IR 
Diode

ich hatte da auch mal Stress, dass die Fernbedinung nicht richtig 
erkannt wurde. War en Hardwareproblem.

Helge

Autor: Michael O. (michi26206)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich hab den TSOP 1136.

Kondensator ist schon vorhanden. Ich verwende im moment das Atmel 
Addon-Board v 1.0 da ist ein 47 µF zwischen Vs und GND.

am Getrc5 kanns aber auch nicht liegen, habe gerade das gefunden:

http://www.ledstyles.de/ftopic1760.html

Das wir hier auch verwendet.

Ich werde mir morgen das ganze wahrscheinlich mal in C anschaun.

Gruß Michi26206

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Michael O. schrieb:
> ok. kann sein. da ich keinen externes Quarz habe, habe ich nichts
> angegeben. (wurde mir so gesagt)

Die feine Art ist das aber nicht.

Vermutlich steht Dein AVR noch auf fabrikneu, also 1MHz und Bascom nimmt 
1MHz an.

Es kann aber nichts schaden, wenn Du mal den AVR auf 4 oder 8MHz setzt 
(CLKPR-Register).


Peter

Autor: roffez (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei mir hats erst funktioniert mit einem Tiefpass 100R + (10u||100n) in 
der Spannungsversorgung, steht auch so im Datenblatt vom SFH5110.

Autor: Michael O. (michi26206)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Peter Dannegger schrieb:
> Michael O. schrieb:
>> ok. kann sein. da ich keinen externes Quarz habe, habe ich nichts
>> angegeben. (wurde mir so gesagt)
>
> Die feine Art ist das aber nicht.
>
> Vermutlich steht Dein AVR noch auf fabrikneu, also 1MHz und Bascom nimmt
> 1MHz an.
>
> Es kann aber nichts schaden, wenn Du mal den AVR auf 4 oder 8MHz setzt
> (CLKPR-Register).
>
>
> Peter

könntest du mir sagen wei das geht? Habe das noch nicht gemacht.

Oder muss ich dann nur
$crystal = 8000000
 angeben?

Gruß

Autor: Helge W. (hwaltr01)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
probiere es in C aus, aber es bleibt ein Hardwareproblem...

Ich hatte alle möglichen Probleme als ich 4,7µF auf der Platine hatte, 
und dann nur 4cm Kabel zur IR Diode.

Setze mal einen 4,7µF direkt an die IR Diode von Vs nach GND Parallel 
dazu noch einen 22nF auch von Vs auf GND zum Schluss noch einen pull-up 
Widerstand 22k Ohm von Vs auf Out

Wichtig DIREKT an der IR Diode
dann solte alles richtig erkannt werden.

Um den µC auf 8 MHz laufen zu lassen musst du das FuseBit setzen und
$crystal = 8000000
angeben

Stelle in Bascom in den Fuses das ein:
100100:Int. RC Osc. 8 MHz; Start-up time: 6 CK + 64 ms; [CKSEL=0100 
SUT=10]

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.