Re: Praktischer Einsatz der RC5 RC5_Read() Funktion Kategorie: Programmierung C (von PeterS - 16.12.2008 11:51) | |
Als Antwort auf Re: Praktischer Einsatz der RC5 RC5_Read() Funktion von Jo - 16.12.2008 11:25
| |
> > > > Hallo, > > > > > Hallo Peter, hallo alle RC5 interessierten, > > > in der Hilfe steht > > > > > > "Es werden auf dem mit RC5_Init() angegebenen Portpin empfangenen 14 Bit des RC5 Kommandos > > > zurückgeliefert. Wird kein Signal empfangen, so wartet die Leseroutine bis zu 130ms, bis sie zurückkehrt." > > > > > > Da ich ja nicht wei� wann der Nutzer eine Taste am IR Sender drückt mü�te man wohl regelmä�ig > > > über einen RC5_Read() pollen. Dann passiert bis zu 130ms nichts!?!? (Das wären 13% CPU für nichts > > > verschwendet!). Frage: Werden in der Zeit andere Interrupts verarbeitet? > > > Oder können z.B. an der Ser. Schnittstelle Zeichen verloren gehen? > > > > Ja die Hardware Interrupts laufen weiter. Die seriellen Interrupts damit auch. Allerdings laufen die > > im Interpreter definierten Interrupt Routinen erst nach der Rückkehr aus RC5_Read() an. > > > > Wenn Dir zuviel Rechenzeit wegläuft, dann setz doch den Empfangspin auf einen Interrupt, und erst wenn > > Du dort Signale empfängst ruf RC5_recv() auf. So gehen maximal die 130ms nur dann verloren, wenn Du > > wirklich Signale empfängst. > > > > Gruss Peter > > Hallo Peter, danke für die schnelle Antwort. > 130 ms sind natürlich trotzdem eine unendlich lange Zeit für Anwendungsfälle die Steuerungsaufgaben im > 10 ms Bereich ( Auflösung des Timer) realisieren mu�. Verstehe ich die Aussage > "Allerdings laufen die > > im Interpreter definierten Interrupt Routinen erst nach der Rückkehr aus RC5_Read() an." richtig, > das auch während RC5_Read() die Timer ISR nicht aufgerufen wird? Es würde dann wohl auch nicht > helfen wenn ich die RC5_Read() Funktion in eine eigene Task mit kleinerer Prio lege, das keine > Taskswitches während die Zeit stattfinden. Ist diese Aussage richtig? Ja, das stimmt, es würde nicht helfen. Das Problem ist, das ein Bit in RC5 1,7ms benötigt. Selbst wenn man im Interrupt nur das Signal wegschreibt, dann bräuchte man auch eine interne Zeitbasis die besser als 1ms ist, um die Zeitabläufe später zu analysieren. Oder man opfert einen Timer für ein 36khz Signal und würde in einer Assembler Interruptroutine die Kongruenz zwischen 36khz und Eingangssignal speichern. Das ist alles nur so speziell, das man das in eine allgemeine Library nicht einbauen kann, da ja auch ein Timer dann wegfällt. > > Ich habe in anderen Foren einige interessante Projekte mit ATMEL zum reinen Empfang von RC5 > gesehen, somit ist mit ein paar wenigen Zusatzbausteinen möglich die zeitkritischen langen Empfang > vom MEGA128 wegzunehmen. Wenn Interesse besteht kann ich gerne meine weiteren Erfahrungen > in diesem Forum Posten. Gerne! > > Viele Grü�e > > Jo > > > > > > > > > > Wäre es nicht besser, ein Verfahren wie bei der ser. Schnittstelle anzuwenden, also beim Init einen > > > Buffer mit übergeben der dann schnell ausgelesen werden kann. Den Empfang der RC5 Daten über interrupt. > > > > > > Kennt jemand u.U. ein IC das den RC5 Empfang HW Technisch realisiert und zwischenpuffert soda� mit > > > dem C-Control nur die empfangsdaten gelesen gelesen werden müssen? > > > > > > Ich bin gespannt auf euere Feedbacks, das RC5 Thema ist für mein akt. Projekt sehr interessant- > > > Danke & Grü�e > > > > > > Jo > > > > > > | |
Antwort schreiben Antworten: |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum