Hallo, ich hab eine tsop4838 so http://i.stack.imgur.com/CrjX0.png an einen atmega8 angeschlossen . hier mein kleines testprogramm $regfile = "m8def.dat" $crystal = 1000000 Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , _ Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2 Config Lcd = 16 * 1 Cursor Off Cls Lcd "hallo" Config Rc5 = Pind.0 Portd.0 = 1 Enable Interrupts Dim Address As Byte , Command As Byte Do Getrc5(address , Command) Locate 1 , 3 Lcd Address Locate 2 , 1 Lcd Command Wait 1 Cls Loop End Das problem ist dass ich auf dem lcd nur 255 angezeigt bekomme... wenn ich aber das oszilloskop an den sensor hänge kommt eine flanke sobalt ich auf der fernbedienung was drücke. wo könnte der fehler liegen?
pascal schrieb: > wo könnte der fehler liegen? Fernbedienung ist keine RC5 Fernbedienung!? Mit Oszi analysieren, ob das RC5 Protokoll vorliegt. Eventuell Oszi Screenshot posten.
ich weiss nicht wie ein rc5 signal aussieht, hier der screen mit taste 4 gedrückt , fernbedienung ist die harmonie von logitech ,eingestellt auf ein philips gerät.
pascal schrieb: > ich weiss nicht wie ein rc5 signal aussieht, hier der screen mit taste 4 > gedrückt , fernbedienung ist die harmonie von logitech ,eingestellt auf > ein philips gerät. Habe versucht mithilfe dieser Seite den Screenshot auszuwerten. http://www.sprut.de/electronic/ir/rc5.htm Scheint wirklich RC5 zu sein. Hat ca. 25ms Telegrammlänge und 14 Bit Daten (111 10100 000111). Geräteadresse 20 (CD-Player, gedrückte Taste aber 7 ?) Vielleicht stört das wait 1 im Programm. In der do-loop mur GetRC5 laufen lassen. Mit if-then abfragen, ob adresse kleiner 255 und dann an LCD anzeigen lassen. Tatsächliche Taktfrequenz des Mega wirklich 1MHz? Mal schneller laufen lassen (und natürlich dann $crystal anpassen). Der Schönheit halber :) würd ich die Deklarationen der Variablen vor irgendwelchen ausführbaren Kommandos legen.
Auge schrieb: > Daten (111 10100 000111). Geräteadresse 20 (CD-Player, gedrückte Taste > aber 7 ?) Sorry: Daten 111 10100 000100, Taste also doch die 4 (wenn ich jetzt richtig geäugt habe)
Auge schrieb: > Tatsächliche Taktfrequenz des Mega wirklich 1MHz? Mal schneller laufen > lassen (und natürlich dann $crystal anpassen). > > Der Schönheit halber :) würd ich die Deklarationen der Variablen vor > irgendwelchen ausführbaren Kommandos legen. lag wirklich am $crystal , ist aber komisch da der atmega neu ist. ich hab ihn jetzt nochmal auf 1000000 gesetzt jetzt geht alles wunderbar. aber ist es normal das die dresse immer 20 ist? PS: das programm sollte nur zum test sein. Falls noch einer ein testprogramm sucht : $regfile = "m8def.dat" $crystal = 1000000 $hwstack = 100 $swstack = 100 $framesize = 100 Config Portb = Output Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , _ Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2 Config Lcd = 16 * 1 Cursor Off Cls Lcd "hallo" Config Rc5 = Pind.1 'Portd.0 = 1 Enable Interrupts Dim Address As Byte , Command As Byte Do Getrc5(address , Command) Locate 1 , 1 Lcd "RC5 Code:" If Address < 255 Then Command = Command And &B01111111 Cls Select Case Command Case 1 : Toggle Portb.0 ' Wird 1 gedrückt, schalte Ausgang 1 Waitms 500 ' Sicherheit zum Schalten wegen toggle Befehl Case 2 : Toggle Portb.1 Waitms 500 Case 3 : Toggle Portb.2 Waitms 500 Case 4 : Toggle Portb.3 Waitms 500 Case 5 : Toggle Portb.5 Waitms 500 End Select Locate 1 , 1 Lcd "Adr:" ; Address Locate 2 , 1 Lcd " Com:" ; Command End If Loop End
pascal schrieb: > aber ist es normal das die dresse immer 20 ist? Hängt von dem gewählten Gerät in deiner FB ab. Wenn du einen Fernseher auswählst ist sie anders, aber dann immer gleich bei jeder gedrückten Taste.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.