goldpower
جمعه 12 خرداد 1391, 22:59 عصر
معادل کدهای زیر به vb6 چیه ؟
Dim d1 As UInteger
Dim d2 As UInteger
Dim d3 As UInteger
Dim d4 As UInteger
Dim d5 As UInteger
Dim d6 As UInteger
Dim i2c_address As Byte = &H53
' if you use RB-110, modify the parameter "RB_100" to "RB_110"
roboio_SetRBVer(DefineConstantsAdxl345.RB_100) ' use RB-100
If i2c_Initialize(DefineConstantsAdxl345.I2CIRQ_DISAB LE) = 1=0 Then
Console.Write("FALSE!! {0}" & vbLf, roboio_GetErrMsg())
Return -1
End If
i2c0_SetSpeed(DefineConstantsAdxl345.I2CMODE_FAST, 400000L)
i2c0master_StartN(i2c_address, DefineConstantsAdxl345.I2C_WRITE, 2) 'write 2 byte
i2c0master_WriteN(&H2d) 'Pwoer_Control register
i2c0master_WriteN(&H28) 'link and measure mode
wait_ms(100)
i2c0master_StartN(i2c_address, DefineConstantsAdxl345.I2C_WRITE, 2) 'write 2 byte
i2c0master_WriteN(&H31) 'Data_Format register
i2c0master_WriteN(&H08) 'Full_Resolution
wait_ms(100)
i2c0master_StartN(i2c_address, DefineConstantsAdxl345.I2C_WRITE, 2) 'write 2 byte
i2c0master_WriteN(&H38) 'FIFO_Control register
i2c0master_WriteN(&H00) 'bypass mode
wait_ms(100)
Do
i2c0master_StartN(i2c_address, DefineConstantsAdxl345.I2C_WRITE, 1)
i2c0master_SetRestartN(DefineConstantsAdxl345.I2C_ READ, 6)
i2c0master_WriteN(&H32) 'Read from X register (Address : 0x32)
d1 = i2c0master_ReadN() 'X LSB
d2 = i2c0master_ReadN() 'X MSB
d3 = i2c0master_ReadN() 'Y LSB
d4 = i2c0master_ReadN() 'Y MSB
d5 = i2c0master_ReadN() 'Z LSB
d6 = i2c0master_ReadN() 'Z MSB
Console.Write("Acc of X-axis :{0,5:D}" & vbLf, If(((d2 And &H80) <> 0), ((((Not 0))>>16)<<16) Or ((d2<<8)+d1), (d2<<8)+d1))
Console.Write("Acc of Y-axis :{0,5:D}" & vbLf, If(((d4 And &H80) <> 0), ((((Not 0))>>16)<<16) Or ((d4<<8)+d3), (d4<<8)+d3))
Console.Write("Acc of Z-axis :{0,5:D}" & vbLf, If(((d6 And &H80) <> 0), ((((Not 0))>>16)<<16) Or ((d6<<8)+d5), (d6<<8)+d5))
wait_ms(100)
Loop While Console.ReadKey(True).KeyChar <> 27
i2c_Close()
Return 0
End Class
Dim d1 As UInteger
Dim d2 As UInteger
Dim d3 As UInteger
Dim d4 As UInteger
Dim d5 As UInteger
Dim d6 As UInteger
Dim i2c_address As Byte = &H53
' if you use RB-110, modify the parameter "RB_100" to "RB_110"
roboio_SetRBVer(DefineConstantsAdxl345.RB_100) ' use RB-100
If i2c_Initialize(DefineConstantsAdxl345.I2CIRQ_DISAB LE) = 1=0 Then
Console.Write("FALSE!! {0}" & vbLf, roboio_GetErrMsg())
Return -1
End If
i2c0_SetSpeed(DefineConstantsAdxl345.I2CMODE_FAST, 400000L)
i2c0master_StartN(i2c_address, DefineConstantsAdxl345.I2C_WRITE, 2) 'write 2 byte
i2c0master_WriteN(&H2d) 'Pwoer_Control register
i2c0master_WriteN(&H28) 'link and measure mode
wait_ms(100)
i2c0master_StartN(i2c_address, DefineConstantsAdxl345.I2C_WRITE, 2) 'write 2 byte
i2c0master_WriteN(&H31) 'Data_Format register
i2c0master_WriteN(&H08) 'Full_Resolution
wait_ms(100)
i2c0master_StartN(i2c_address, DefineConstantsAdxl345.I2C_WRITE, 2) 'write 2 byte
i2c0master_WriteN(&H38) 'FIFO_Control register
i2c0master_WriteN(&H00) 'bypass mode
wait_ms(100)
Do
i2c0master_StartN(i2c_address, DefineConstantsAdxl345.I2C_WRITE, 1)
i2c0master_SetRestartN(DefineConstantsAdxl345.I2C_ READ, 6)
i2c0master_WriteN(&H32) 'Read from X register (Address : 0x32)
d1 = i2c0master_ReadN() 'X LSB
d2 = i2c0master_ReadN() 'X MSB
d3 = i2c0master_ReadN() 'Y LSB
d4 = i2c0master_ReadN() 'Y MSB
d5 = i2c0master_ReadN() 'Z LSB
d6 = i2c0master_ReadN() 'Z MSB
Console.Write("Acc of X-axis :{0,5:D}" & vbLf, If(((d2 And &H80) <> 0), ((((Not 0))>>16)<<16) Or ((d2<<8)+d1), (d2<<8)+d1))
Console.Write("Acc of Y-axis :{0,5:D}" & vbLf, If(((d4 And &H80) <> 0), ((((Not 0))>>16)<<16) Or ((d4<<8)+d3), (d4<<8)+d3))
Console.Write("Acc of Z-axis :{0,5:D}" & vbLf, If(((d6 And &H80) <> 0), ((((Not 0))>>16)<<16) Or ((d6<<8)+d5), (d6<<8)+d5))
wait_ms(100)
Loop While Console.ReadKey(True).KeyChar <> 27
i2c_Close()
Return 0
End Class