PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme mit IR/RC5 Programmierung



Lutz
06.03.2005, 12:08
Hallo!

Ich hab seit einiger Zeit die M-Unit 2.0 und versuche nun ein kleines Programm für meinen Röhrenvorverstärker zu schreiben. Bin aber nun am einbinden der IR-Fernbedienung gescheitert.
Das Beispielprogramm für die IR-Abfrage funktioniert (IR_Module_2.bas), wenn ich die Funktionen in mein Programm übernehme funktioniert es nicht. Hab auch schon sehr viele versch. Programmtechniken ausprobiert (kann ich garnicht alles aufzählen), leider alles ohne Erfolg. Manchmal wird der Code einmal empfangen und dann nicht mehr!?
Ist da noch ein Bug im Betriebssystem?
Habe ich einen groben Fehler gemacht?
So ganz firm bin ich auch noch nicht in der Programmierung.

In der vollen Ausbaustufe benutze ich dann fast alle Funktionen der M-Unit... I2C Porterweiterung, LCD Ansteuerung, AD-Wandler, IR-Empfang, alle Ports usw., kann es da zu Problemen kommen?

Anbei das Prog. wo ich meine, dass es funktionieren müßte.

Bin für jede Info dankbar.

Lutz

DIE HARD
07.03.2005, 19:00
Hallo.....
Aus deinem Programm:

print "#clr#";
print"#init#";

Das muss immer in GROSSBUCHSTABEN sein, sonst kann
alles mögliche passieren.
ciao..

DIE HARD
07.03.2005, 19:01
Nachtrag:

Das IR-Module kennt kein #INIT#" !!

Lutz
07.03.2005, 19:16
Hi,
An der Kleinschreibung liegt es nicht (LCD-Funktionen funktionieren auch mit Kleinschreibung). Ich habe aber trotzdem mal alles groß geschrieben, leider aber keine Änderung.
Die ADDR und CMD werden einfach nicht im Programm verarbeitet, obwohl ich sie mit dem Testprogramm einwandfrei auslesen und identifizieren kann. Ich muß da doch einen grundlegenden Fehler machen, oder? Kann mir da niemand weiter helfen?

Lutz

Lutz
07.03.2005, 19:23
Nachtrag:

Muß man vieleicht die einmal eingelesene ADDR und CMD bis zur nächsten Schleife löschen bzw. auf Null setzen,damit ein neuer Code empfangen werden kann?
Wenn ja wie?

Lutz

DIE HARD
08.03.2005, 12:55
Hallo...
Wenn du CMD und ADDR abgeholt hast (GET), ist
der Buffer wieder geleert und kann wieder empfangen.
Empfang ist nur möglich, wenn der Buffer leer ist.
Hast du das #INIT#entfernt?
poste doch dein Programm, wie es jetzt ist nochmal
ciao....

Lutz
08.03.2005, 13:28
Hi,

Ja, hab alles groß geschrieben und INIT an der einen Stelle entfernt.

Hier nochmal das Programm:

DIE HARD
08.03.2005, 22:12
Hallo...
Dein Programm verursacht einen Stacküberlauf,
weil du Programmpfade hast, wo du von der LOOP
mit gosub nach IR gehst und von dort ohne RETURN
über Umwege mit GOTO wieder zurück nach LOOP.
ciao....
-------------
#LOOP
GOSUB IR

#IR
goto sauf/sab

#sauf/sab
goto PHONO

#phono
goto loop
----------------------

Lutz
09.03.2005, 18:31
Hi,

Danke für den Tip, das war es wohl.
Werde ich gleich mal ausprobieren.

Ciao