- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 5 von 5

Thema: Atmega8, RC5, IR-Fernbedienung und Taktfrequenzen

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.07.2004
    Beiträge
    580

    Atmega8, RC5, IR-Fernbedienung und Taktfrequenzen

    Anzeige

    Praxistest und DIY Projekte
    Hallo liebes Forum,

    ich versuche gerade eine Fernbedienung, von der ich nicht genau weiß ob sie RC5 unterstützt, mit einem ATMega8 zu kombinieren.
    Es handelt sich um eine Samsung Fernbedienung für eine Musikanlage.


    Ich habe mich dabei an dem Beispiel in Bascom orientiert.

    Es hätte mich nicht gewundert, wenn es nicht funktioniert hätte aber ich habe durch einen Fehler im Programm tatsächlich Resultate erhalten.

    Ich bekam Werte auf meinem LCD angezeigt.
    Aber nur dann wenn die über $crystal eingestellte Frequenz 16 mal größer ist als die tatsächliche über die Fusebits eingestellte.
    Ich habe es mit mehreren unterschiedlichen Werten ausporbiert.

    Allerdings bekomme ich relativ willkürliche Werte.
    Sie unterscheiden sich bei jedem Tastendruck, zumindest in einem gewissen Rahmen. Es gibt drei, vier Werte die immer wieder angezeigt werden.
    Teilweise unterscheiden sie sich von Taste zu Taste, teilweise sind es die gleichen Werte.

    ich könnte das jetzt so verwenden wenn ich mich auf eine Single-Button-Menüführung einigen könnte... ich hätte aber lieber vier Tasten...

    Ich wäre euch dankbar wenn ihr Ideen hättet wie ich es vielleicht doch mit dieser Fernbedienung hinbekomme.
    Kennt jemand einen Bascom Code für SAmsung Fernbedienungen mit dem ich es probieren könnte, oder hat jemand eine Erklärung wieso ich überhaupt Werte bekomme?

    Danke für eure Mühe!

    Crypi

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.703
    Blog-Einträge
    133
    Hallo,
    ich habe auch mit einem ATtiny45 mit Bascom GETRC5 nach http://avrhelp.mcselec.com/index.html?getrc5.htm experimentiert.

    Hat mit Systemtakt 8MHz über internen Oszillator und $crystal=8000000 auch sofort funktioniert. Allerdings habe ich alle bei mir verfügbaren Fernbedienungen durchprobiert bis ich eine mit RC5 gefunden hatte (War eine von Technisat Satellitenempfänger)

    Ob Samsung RC5 benutzt weis ich nicht. Das Du da eine Ausgabe am LCD bekommst scheint mir nach Deiner Beschreibung eher Zufall zu sein.

    Das Bascom Kommando nutzt TIMER0. Wenn Du den auch anderweitig im Programm nutzt, könnte es da Probleme geben!?

    Gruß
    Searcher
    Geändert von Searcher (03.08.2011 um 12:32 Uhr)
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    706
    ...auch hier kann geholfen werden


    Zunächst mal zu der Takt-Geschichte: Das ist seltsam, und eines ist ziemlich sicher: Wenn Bascom von einer anderen Taktfrequenz als der tatsächlichen ausgeht, KANN dabei nichts gutes rauskommen. Was für Werte hast Du denn per Fuses bzw. $Crystal gewählt?

    Zu den "Wechselnden" Werten beim RC5-Empfang muss man folgendes wissen:

    Bit 7 des "Kommando"-Bytes ist ein sogenanntes "Toggle-Bit", mit dem es folgendes auf sich hat:
    Wenn Du eine Taste dauerhaft drückst, sendet die Fernbedienung ja ziemlich oft das gleiche Kommando aus (mindestens 10 mal pro Sekunde, wenn nicht öfter). Das heißt aber auch, dass bei einem ganz "normalen" Tastendruck (a.so z.B. für eine halbe Sekunde) das entsprechende Kommando mehrfach gesendet wird. Wenn der Empfänger nun z.B. dreimal das Kommando "8" empfängt, muss er ja irgendwie unterscheiden können, ob die Taste "8" nur etwas länger gedrückt wurde, oder der Bediener tatsächlich dreimal die Taste 8 gedrückt hat. Und das geht mit dem Toggle-Bit, das nämlich bei jedem Tastendruck (!) getoggelt wird. Kommt also immer das gleiche Byte rein weiß der Empfänger, dass der Benutzer halt nur etwas länger auf der Taste steht. Wenn aber "fast" gleiche Bytes eintrudeln, die sich nur im 7. Bit unterscheiden, ist klar, dass die selbe Taste mehrfach gedrückt wurde.

    Im Zweifelsfall kann man das 7. Bit des Kommando-Bytes einfach löschen - dann sehen die empfangenen Bytes plötzlich ziemlich gleichmäßig aus!

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.07.2004
    Beiträge
    580
    Danke für eure Antworten!

    Die Einstellung war $crystal =1600000 und per fuse 1Mhz bzw. per $crystal=128000000 und per fuse 8Mhz, eben jeweils das 16-fache.

    Ich benutze den Timer nicht weiter. Ich habe nichts weiter im Programm als den RC5 Empfang und das LCD.

    Wie bekomme ich das 7. Bit gelöscht?

    Crypi

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.01.2007
    Ort
    Göttingen
    Beiträge
    706
    Also - bevor Du mit RC5 weitermachst musst Du unbedingt sicherstellen, dass Takt und $Crystal übereinstimmen.
    Die einfachste Möglichkeit hierfür ist, eine LED mittels Waitms-Befehl mit 1 Hz blinken zu lassen. Das kann man dann mit dem bloßen Auge und einer Uhr mit Sekundenzeiger überprüfen:

    Code:
    $regfile = mega8def.dat  (oder so...)
    $Crystal = 8000000   (bzw. der in den Fuses gewählte Wert)
    
    Config PORTX.Y = output
    
    Do
    
    Toggle PORTX.Y
    waitms 500
    
    Loop
    Wenn die LED dann in einem ganz anderen Takt als 1 Hz blinkt, brauchst Du mit RC5 erstmal gar nicht weiter zu experimentieren, weil es hierbei absolut essenziell auf das Timing ankommt.

    Und das siebte Bit löschst Du ganz einfach:

    GetRC5(adresse, kommando)
    kommando.7 = 0

Ähnliche Themen

  1. IR Fernbedienung
    Von ycronoy im Forum Jobs/Hilfen/Stellen - Gesuche und Angebote
    Antworten: 13
    Letzter Beitrag: 27.09.2009, 21:37
  2. Antworten: 23
    Letzter Beitrag: 15.12.2007, 20:36
  3. IR-Fernbedienung mit Atmega8
    Von rocketman123 im Forum Elektronik
    Antworten: 7
    Letzter Beitrag: 19.11.2007, 20:45
  4. Unterschied ATmega8-16PC und ATmega8-16AC
    Von Christian 25 im Forum AVR Hardwarethemen
    Antworten: 17
    Letzter Beitrag: 01.10.2006, 20:09
  5. Fernbedienung
    Von Decca im Forum C - Programmierung (GCC u.a.)
    Antworten: 0
    Letzter Beitrag: 02.11.2005, 18:31

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Solar Speicher und Akkus Tests