Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

Re: Neue RC5-Funktionen Kategorie: Programmierung Basic (von Jürgen - 14.12.2008 12:16)
Als Antwort auf Neue RC5-Funktionen von Jürgen - 14.12.2008 12:03

> Hallo,
>
> ich wollte gerade die RC5-Funktionen Testen. Also mit RC5_Init(18) 'Port C.2 = Bit 18
> den E/A-Port auf C.2 festgelegt. Die über einen Treiber angeschlossene gelbe LED (parallel zur
> IR-LED) leuchtet, vermutlich weil der Port noch als Eingang geschaltet ist. Dann weiter mit
> Dim RC5Data As Word
> RC5Data = 0b0011000000000001
> RC5_Write(RC5Data)

> und die LED geht aus. Kann sein, dass ich das kurze flackern des RC5-Befehls im Anschluss
> an das Dauer-An der LED nicht gesehen habe, deshalb nochmal
>
> RC5Data = 0b0011000000000001
> RC5_Write(RC5Data)

> -kein Flackern der LED :-( . Macht nichts, ist ja ne Beta-Version, weiter probiert mit
>
> RC5Data = 14336 'vielleicht funktioniert die Binärkonstante nicht
> RC5_Write(RC5Data)

> hat aber leider auch nicht die LED zum flackern gebracht. Das Progrämmchen hier:
>
>
> Dim Text2(9) As Char
> Dim Taste As Word
> Dim Losgelassen As Byte
> Dim RC5Data As Word
>
> Sub ZeigeMenue()
>     Dim Text(9) As Char
>     LCD_ClearLCD()
>     LCD_CursorOff()
>     LCD_CursorPos(0)
>     Text = "*: Menü"
>     Text(6) = 245 'ü im Text überschreiben, wird sonst nicht richtig dargestellt
>     LCD_WriteText(Text)
>     LCD_CursorPos(64)
>     LCD_WriteText(Text2)
> End Sub
>
> Sub VerarbeiteTaste()
>     Taste = Key_Scan()

>     If (Taste <> 0) And Losgelassen Then 'jeden Tatendruck nur einmal bearbeiten
>         Losgelassen = 0
>         Select Case Taste
>         Case 8192  '1
>             Text2 = "1 "
>             'RC5Data = 0b0011000000000001
>             RC5Data = 14336 'vielleicht funktioniert die Binärkonstante nicht
>             RC5_Write(RC5Data)
>         Case 8     '2
>             Text2 = "2 "
>             RC5Data = 0b0011000000000010
>             RC5_Write(RC5Data)
>         Case 1     '3
> ...
>         Case 512   '0
>             Text2 = "0 "
>             RC5Data = 0b0011000000000000
>             RC5_Write(RC5Data)
>         Case 2048  '*
>             Text2 = "* "
>             'RC5Data = 0b0011000000000001
>             'RC5_Write(RC5Data)
>         Case 32768 '#
>             Text2 = "# "
>             'RC5Data = 0b0011000000000001
>             'RC5_Write(RC5Data)
>         End Select
>         Str_WriteWord(Taste, 10, Text2, 2, 0)
>         ZeigeMenue()
>     ElseIf (Taste = 0) And (Losgelassen = 0) Then
>         Losgelassen = 1
>         Text2 = "#: Aus"
>         ZeigeMenue()
>     Else ' !?! --notwendig, Programm funktioniert ohne diese Zeile nicht !?!
>     End If
> End Sub
>
> Sub main()
>     RC5_Init(18) 'Port C.2 = Bit 18
>     LCD_Init()
>     Key_Init()
>     Text2 = "#: Aus"
>     ZeigeMenue()
>     Losgelassen = 1
>     Do
>         VerarbeiteTaste()
>     Loop While True
> End Sub
>

>
> entdeckt jemand den Fehler? Die Ausgabe aufs Display funktioniert.
>
> Peter und Ulli, könnt Ihr Euch mal das Else am Ende der
> Sub VerarbeiteTaste()
> ansehen? Ohne das Else tut das nicht.
>
> Grü�e
> Jürgen
>
Einen Fehler habe ich eben selbst gefunden: 0b0011000000000001 ist nicht 14336 sonden 12289.
Trotz Korrektur verlässt kein RC5-Befehl die IR-LED.

Grü�e
Jürgen


    Antwort schreiben


Antworten: