Wie implementiert man RC-5?

OP #1030736
Lesenswert?

Hallo,
ich muss auf einem Parallax Propeller, die RC-5 Codes beibringen.
Ich weiß im Prinzip, wie die Codes aufgebaut sind, aber ich habe keine 
Ahnung wie man das nun implementieren kann/sollte.
Hier ist das ganz gut beschreiben, wie das Protokoll aufgebaut ist: 
http://www.sprut.de/electronic/ir/rc5.htm
Also ich würde gerne wissen was es da für Ansätze gibt usw.
Auf dem Propeller kann ich einen eigenen Kern mit 80Mhz spendieren, der 
sich ausschließlich darum kümmert, sollte wohl reichen. Ich habe keine 
Interrupts oder ähnliches! Ich habe praktisch nur nen Inputpin und muss 
den pollen ;)
OP #1030774
Lesenswert?

Ufff.... glaube da ist es ja einfacher das komplett neu zu machen.
Mir geht es ja nicht um den Code, da ich den sowieso nicht gebrauchen 
kann, da ich das ganze in Spin programmieren muss. Mir geht es um das 
System und das System Timer/Interrupt hatte ich ja nun schon 
ausgeschlossen :(
#1030875
Lesenswert?

Fabian S. wrote:
> Ufff.... glaube da ist es ja einfacher das komplett neu zu machen.
> Mir geht es ja nicht um den Code, da ich den sowieso nicht gebrauchen
> kann, da ich das ganze in Spin programmieren muss.

Also nen MC, den man nichtmal in C programmieren kann, würde ich nicht 
anfassen.


> Mir geht es um das
> System und das System Timer/Interrupt hatte ich ja nun schon
> ausgeschlossen :(

Was, das Ding hat 8 Kerne und die haben nichtmal jeder ihren eigenen 
Timerinterrupt ???

Du kannst keinen Code einlesen, der seine Information in der Pulslänge 
hat, wenn Du keinen Timer hast, um sie zu messen.


Ich kann da nur noch mit dem Kopf schütteln, einen ganzen 80MHz 
32Bit-Kern für so ne läppische Task zu vergeuden, die jeder 1MHz 8Bitter 
(mit Timer)  so nebenbei macht.


Peter
OP #1031072
Lesenswert?

Ja gut, dann halt 2, ist auch kein Problem...
Nur wie macht man das dann? Soll ich einfach mit ner Schleife warten bis 
der Pin auf High geht (sollte dann ja das erste der drei 
Initialisierungsbits sein) und dann auf den Timer horchen um alle 889µs 
den Pin wieder abzufragen?
Wie baut man das am besten, denn wenn ich den Timer starte sobald ich 
das erste High bekommen habe und die Fernbedienung etwas zu langsam ist 
werde ich beim nächsten Tick noch immer den gleichen Status abfragen wie 
zuvor...

Btw: Es gibt zwar keinen Timer in dem µC, aber einen System-Counter, den 
könnte ich dafür doch genausogut nutzen oder?
Wenn ich das erste Bit bekomme kann ich doch ausrechnen wann die anderen 
kommen müssten und dann immer mit ner Schleife drauf warten bis er dort 
abgekommen ist?
#1031075
Lesenswert?

Also an deiner Stelle würde ich mal in einem Parallax Forum stöbern, ich 
wette mit Dir dort haben sie bereits einen fertigen Code für RC5.
Ich möchte Dich um Gottes Willen hier nicht vertreiben, aber hier sind 
die Propeller-Nutzer nicht all zu viel vetreten. Ich hatte auch schon 
mal mit dem Parallax geliebeugelt aber bin dann doch beim AVR hängen 
geblieben ;-)
#1031108
Lesenswert?

Fabian S. wrote:
> Btw: Es gibt zwar keinen Timer in dem µC, aber einen System-Counter, den
> könnte ich dafür doch genausogut nutzen oder?

Ja.

Macht man bei 8Bittern auch so, daß man einen der Timer als Systemtimer 
benutzt und der macht dann zyklische Interrupts.

In meinem Code habe ich etwa 50µS benutzt.
Und dann wird eben getestet, ob der Input gewechselt hat und 
dementsprechend ausgewertet (0-Bit, 1-Bit oder Störung) und die 14 Bits 
gesammelt.


Peter
OP #1031151
Lesenswert?

Öhhh, ich glaube ich weiß jetzt warum meine Implementation icht 
läuft...die Sprache in der man den normal Programmiert ist glaube ich 
extremst langsam. Habe hier ne Funktion in der eine kleine Schleife ist 
von 28 Durchläufen und einer kleinen Rechnung und er braucht dafür 
irgendwas zwischen 70 und 80 TAUSEND! Takte.... weiß nicht ob das normal 
ist, oder ob ich nen Fehler drin habe...
Naja, da ein halbes Bit nur 35560 Takte lang ist wird das natürlich 
nichts, da der Counter nach dem Berechnen längst über den nächsten 
Haltepunkt geschossen ist...werde mich wohl mal mit dem Spin Assembler 
auseinandersetzen müssen :(
Gast #1031164
Lesenswert?

einen eigenen kleinen attiny dafür zu verwenden scheidet aus? kostet 
weder wirklich platz noch geld und schafft dir alle probleme vom hals.
vergleich mal deine entwicklungskosten für deine zauber-cpu mit dem 
dauereinsatz des attinys (bei kopiertem "peter-code") =)
OP #1031165
Lesenswert?

Kommt jetzt eigentlich nicht mehr in Frage...
Das Board ist fertig geätzt, bestück und läuft super, mal ganz 
absgesehen davon, dass darauf für ein Tiny kein Platz mehr wäre, habe 
die vollen 10x10cm von Eagle ausgeschöpft, ist echt kein mm Platz übrig 
:D
Dann müsste ich mir für ... öhh 150€ oder so die einfache Eagle Version 
holen, das lohnt sich sicher nicht :D
Gast #1031168
Lesenswert?

>Habe hier ne Funktion in der eine kleine Schleife ist
>von 28 Durchläufen und einer kleinen Rechnung und er braucht dafür
>irgendwas zwischen 70 und 80 TAUSEND! Takte...

Macht ja nix, wenn die Performance mit 80 MHz und 8 Kernen wieder 
wettgemacht wird... wechlach

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren