PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : RC5 am Pro Bot



Croal
14.04.2013, 16:50
Hallo , ich experimentiere mit dem demo RC5 drive aber verstehe die sache nicht ganz, wenn ich den code draufspiele bekomme ich im ausgabefenster sowas wie
1:9:20:20
1:8:42:42
1:8:42:42
1:10:18:18
1:8:42:42
0:21:9:9
1:9:18:18
0:20:36:36
1:10:42:42
1:10:18:18
bei der gleiche Taste und wenn ich eine andere taste drücke sind auch oft die gleiche zahlen wie bei der taste davor. Ich weeiss nicht obe es eine rolle spiellt aber mit dem original TSOP1736 hat mein Kollosionssensor nicht geklappt da habe ich kurzerhand einen satelitenresiver platt gemacht und den empfänger da in den Pro Bot eingelötet womit dann der ACS aber super funktioniert hat. Auch jetzt reagiert der auf die Fernbedinung , hab zwei stück , ein original Philips und eins von ebay mit RC5 . ich bekomme mit beiden die gleichen zahlen. So wie ich verstanden hab sollte ich einsen und nullen bekommen und für eine taste immer die gleichen oder nicht?
Hier der code wenn es weiterhilft:

Dim RC5_Code As Word
Dim RC5_Tog_bit As Word
Dim RC5_Addr As Word
Dim RC5_Command As Word
Dim RC5_ExtCommand As Word

Dim Spacer(3) As Char

Sub main()

Spacer = ":"

PRO_BOT128_INIT() 'PRO-BOT128 Initialisierung

RC5_Init(26) 'PortBit TSOP1736

AbsDelay(1000) 'Pause
BLL_ON() 'Back LED left "ON"
BLR_ON() 'Back LED right "ON"
ENC_LED_ON() 'Encoder IR-LEDs "ON"
DRIVE_ON() 'Motor "ON"

BEEP(150,300) 'Tonfolge
BEEP(250,250)
BEEP(150,300)


'Jetzt gehts los!
Do While True 'Endlosschleife


'RC5 einlesen
RC5_Code = RC5_Read()


'Toggelbit auswerten 1 oder 0
RC5_Tog_bit = RC5_Code And &H800
If RC5_Tog_bit <> 0 Then
RC5_Tog_bit = 1
Else
RC5_Tog_bit = 0
End If


'Daten aufteilen
RC5_Addr = ((RC5_Code >> 6)) And &H1f
RC5_Command = RC5_Code And &H3F
RC5_ExtCommand = RC5_Command Or ((RC5_Code And &H1000) >> 6)


'Debugausgabe (Start über F10!)
Msg_WriteWord(RC5_Tog_bit)
Msg_WriteText(Spacer)
Msg_WriteWord(RC5_Addr)
Msg_WriteText(Spacer)
Msg_WriteWord(RC5_Command)
Msg_WriteText(Spacer)
Msg_WriteWord(RC5_ExtCommand)
Msg_WriteChar(13)


'Meine Adresse = 20
If RC5_Addr = 20 Then
Select Case RC5_Command

'vorwärts
Case 16
FLL_ON()
FLR_ON()
BLL_OFF()
BLR_OFF()
DRIVE_FWD(180,0)

'rückwärts
Case 17
FLL_OFF()
FLR_OFF()
BLL_ON()
BLR_ON()
DRIVE_BWD(180,0)

'rechts drehen
Case 22
FLL_OFF()
FLR_ON()
BLL_OFF()
BLR_ON()
TURN_RIGHT(170,0)

'links drehen
Case 21
FLL_ON()
BLL_ON()
FLR_OFF()
BLR_OFF()
TURN_LEFT(170,0)

End Select

Else

'Stopp
MOTOR_STOP()
FLL_OFF()
FLR_OFF()
BLL_OFF()
BLR_OFF()

End If

End While

End Sub

ach ja , das mit dem Case 16 , Case 17 , Case 22, und case 21 verstehe ich auch nicht , sollte das nicht irgendwo deffiniert sein?
Danke für die hilfe und gruss Croal