RC5 unsauber Übertragung?

OP #1331505
Lesenswert?
• ▲
▼
Hi,

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

Hier mal mein Bascomcode:
1
Do
2

3
 Getrc5(address , command)
4
 If Address = 0 Then
5
    command = command And &B10111111
6
    Locate 2 , 1
7
    Lcd "Adr:" ; Address ; "  Cmd:" ; command ; "  "
8
    If command = 12 Then
9
       Toggle Portc.1
10
 End If
11

12
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
#1331517
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
OP #1331519
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.
#1331624
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
OP #1331644
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
1
$crystal = 8000000
 angeben?

Gruß
#1331898
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

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.