RC5-Write macht nicht ganz das, was es soll Kategorie: Programmierung Basic (von Jürgen - 20.01.2009 21:44) | ||
| ||
Hallo zusammen, gespannt habe ich auf die neue Beta-Version gewartet, hurra, jetzt ist sie da! Gleich die 1.99 installiert und kurz darauf die 1.99.1. Mein vorhandenes, bis jetzt aber noch nicht funktionierendes IR-Fern- bedienungsprogramm compiliert und ... Select Case Taste ... Case 32768 ... End Select Semantik Fehler - konstanter Ausdruck mu� 16Bit Integer mit Vorzeichen sein ein Fehler - Kompilation abgebrochen. ... schade, hat bei V.1.71 noch nicht zum Abbruch geführt (ob das Programm richtig funktioniert hätte weis ich nicht) Workaround: Else If Taste = 32768 Then '# <--- Zahl zu gro� für "Case" Text2 = "# " RC5Data = 0b0011000000000001 RC5_Write(RC5Data) End If End Select So noch mal compiliert und JA! Keine Fehler, also ab damit auf die C-Control und Programm gestartet. Nachdem die Kontroll-LED auch noch mit flackern auf einen Tastendruck reagiert hat, bin ich schnell zum Fernseher geflitzt und wollte auch dort den RC5-Erfolg sehen... Wieder schade, der Fernseher reagiert nicht. Hab' ich meine IR-LED nicht richtig beschaltet? Video- Kamera draufgehalten, IR-LED flackert im Gleichtakt zur Kontroll-LED, das war nicht der Fehler. Also das Board eingepackt und auf zur Arbeit (dort steht ein Osszi und wartet genau auf solche Problemfälle). Hier bis zur Pause ungeduldig meine Arbeit gemacht und dann das Board angeklemmt. Taste 1 gedrückt, Ergebnis: 14 Bits auf dem Osszi, sieht erst mal gut aus. Dann die Zeitauflösung etwas kleiner gedreht um zu sehen ob die Bits auch moduliert sind...auch i.O.. Danach mal die Tasten 2, 3, 4 ,5 gedrückt, komisch das Bitmuster ändert sich ja nur von 1 nach 2, dann nicht mehr (sollte auch 2, 3, 4 und 5 sein). Hm, noch mal ins Programm geguckt, ob ich auch wirklich verschiedene Codes verschicke: Ja, soweit ich das überschaue schon. Hier mal ein Auszug: Dim Text2(9) As Char Dim Taste As Word Dim Losgelassen As Byte Dim RC5Data As Word Dim Toggle As Word Dim Nochmal As Byte Sub VerarbeiteTaste() Taste = Key_Scan() If (Taste <> 0) And (Losgelassen Or Nochmal) Then If Not Nochmal Then Timer_T1Time(1638,PS0_1024) '113,74ms End If Losgelassen = False Nochmal = False Select Case Taste Case 8192 '1 Text2 = "1 " RC5Data = 0b0011000000000001 Or Toggle 'Versuch mit dem Toggle-Bit(2048) RC5_Write(RC5Data) Case 8 '2 Text2 = "2 " RC5Data = 0b0011000000000010 RC5_Write(RC5Data) Case 1 '3 Text2 = "3 " RC5Data = 0b0011000000000011 RC5_Write(RC5Data) Case 1024 '4 Text2 = "4 " RC5Data = 0b0011000000000100 RC5_Write(RC5Data) ... End Select Str_WriteWord(Taste, 10, Text2, 2, 0) ZeigeMenue() ElseIf (Taste = 0) And (Not Losgelassen) Then Losgelassen = True Timer_T1Stop() Text2 = "#: Aus" ZeigeMenue() If Toggle = 0 Then Toggle = 2048 Else Toggle = 0 End If Else ' !?! --notwendig, Programm funktioniert ohne diese Zeile nicht !?! End If End Sub Meiner Meinung nach sollte das funktionieren :-(. Jetzt muss ich wieder jemanden Fragen, der sich damit auskennt, war bis jetzt hier aber kein Problem. Grü�e und schon mal Dank dem, der mir helfen kann Jürgen Hier noch ein paar Osszi-Bilder: Bitfolge für "1" ... stimmt irgendwie nicht, erkenne keine Startbits und auch nicht die 1 Bitfolge für "2" ... kann keinen Zusammenhang zwischen gewünschter Bitfolge und Osszibild erkennen Bitfolge für "3" ... sieht aus wie Bitfolge für "2" Zwei RC5-Befehle nacheinander, Abstand sieht gut aus Modulation eines Bits ... sieht gut aus | ||
Antwort schreiben Antworten: |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum