Habe vor eine 8051er Steuerung (AT89S52) mit einer IR-Fernbdienung
zu steuern. Habe dazu im Forum auch schon viele Beiträge gefunden,
meistens aber für AVR µCs oder das Empfangsprogramm von Peter
Danegger. Habe aber immer noch nicht C gelernt und bin auch mit
den AVR-Assemblerbefehlen nicht so vertraut.
Bevor ich mich selber ans programmieren mache, kann mir jemand einen
Link zu einem RC5-Code-Empfangsprogramm für 8051er in Assembler
geben?
Gruß, Hans
Das sollte man schon selber programmieren. Schließlich muss man
entscheiden, wie der Empfang stattfinden und was der Prozessor in der
übrigen Zeit tun soll. Man könnte den Eingangsport in kurzen Abständen
per Timerinterrupt abfragen "polling", ob ein Signal hereinkommt. Dann
kann man die Arbeit an anderen Programmteilen stoppen und nur das Signal
verarbeiten, bis der Befehl zu Ende empfangen wurde. Für einige
Applikationen ist ein solches Anhalten des Hauptprogramms nicht möglich.
Oder man löst beim Empfang eine Signals einen Interrupt aus
(Flankenerkennung am Port), oder, oder ....
Was am besten ist, hängt auch von dem verwendeten 8051-Derivat ab und
den Möglichkeiten, die der Prozessor bietet.
Danke für die Antworten.
In dem Link von Route_66 H. habe ich gefunden wonach ich suchte.
Da konnte ich im Assemblerbeispiel der Empfangsroutine folgen und die
Zeiteinstellungen auf die jeweilige Quartzfrequenz dürfte kein
Problem sein.
Da in meinem Programm schon alle 3 Timer in Verwendung sind, dürften
Warteschleifen problemloser sein, als einen Timer für 2 Aufgaben zu
verwenden.
Gruß, Hans
In der UAT-0422/00 Part 2 sind Assembler Listings für den 8051 dabei.
Könnte auch 70422002.pdf heißen.
Etwas was ich mal dazu gefunden habe, im Anhang.
Anbei die C-Source und daraus der Assembler-Output.
T0 wird in den Split-Mode gesetzt, d.h. alle 256 Takte ein Interrupt.
Sind noch andere Interrupts vorhanden, muß er auf die höchste Priorität
gesetzt werden, damit das Timing nicht gestört wird.
Ist rc5_done gesetzt, dann enthält rc5_data die Daten.
Für den nächsten Empfang muß rc5_done gelöscht werden.
Gähn! - Mach doch da nicht so ein Gewese drum:
Wenn dir RC5 zu kompliziert ist, gibt es auch einfachere Codes mit
variabler Pausen-, oder Pulslänge.
Voll easy und auch betriebssicher.
Ich will ja hier kein ganz neues Projekt beginnen,
sondern eine bestehende Steuerung, die ich bisher mit einem Laptop
über die RS232 einstellte, ohne PC bedienen können.
Und das vorhandene Programm ist halt in Assembler.
Bitte das Thema jetzt nicht auf Programmiersprachen ausdehnen.
Gruß, Hans
Halt uns doch nicht für blöd:
Wwoher soll denn deine RC5-Fernsteuerung wissen, was vorher über
RS232 auch nur der 8051 kannte?
Kenne keine Übersetzungslibrary von weiß-ich-nicht-RS232 auf
weiß-ich-nich-RC5.
Gilt für jede Programmiersprache.
Kannst Du den Titel dieses Themas nicht lesen,
heisst es da RC5-Code-Empfangsprogramm oder
heisst es da RC5-Code-Sendeprogramm?
Glaubst Du, dass wenn überall jede Menge alte Fernbedienungen rumliegen
ich so eine selber bauen und programmieren will?
Wie glaubst Du, dass ich die Steuerung bisher einstellen konnte,
wenn ich nicht weiß wie oder was über RS232 übertragen wurde?
Glaubst Du, dass ich den IR-Sensor an den RX-Eingang
anschliessen will?
Für alle, die es noch nicht gelesen haben, am 11. 11. hatte ich schon
gepostet, daß ich die gesuchte Hilfe gefunden habe.
Und wenn einem dann danach noch unterstellt wird, daß mir der RC5-Code
zu
kompliziert wäre und dann auch noch zugetraut wird die serielle
Verbindung
mit dem PC 1 zu 1 mit der Fernbedienung ersetzen zu wollen....
Aber Du hast schon recht, auf nett formulierte Postings sollte man nicht
mit nett formulierten Postings antworten - Tut mir leid.
Gruß, Hans
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