potřeboval bych pomoci, mam doma gyroskop od konzole Wii a potřebuju z něj dostat úhly natočení. Data z něj přečtu ale bohužel ta čísla co z něj dostanu, mě nic neřikaj. Co je to za hodnoty?
Děkuji za pomoc.
Zde je můj program pro přečtení dat.
Kód: Vybrat vše
'$sim
$regfile = "m8def.dat" 'Soubor s deklaracemi
$crystal = 8000000 'Kmitočet krystalu v Hz
$baud = 57600
$hwstack = 100
$swstack = 64
$framesize = 64
'''''''
Dim X_natoceni As integer
Dim Y_natoceni As Integer
Dim Z_natoceni As Integer
Dim X_natoceni_0 As Integer
Dim Y_natoceni_0 As Integer
Dim Z_natoceni_0 As Integer
Dim Soucet As Word
'''''''
Dim Gyro_prijem(6) As Integer
Dim Adresa_w As Byte
Dim Adresa_r As Byte
''''''''''
Dim I As Byte
'
'''''''''''''
Adresa_w = &HA6
Adresa_r = &HA4
Config Scl = Portd.7
Config Sda = Portb.0
Config I2cdelay = 2.5us
'''''''''''''
Gosub Gyro_inic
Waitms 100
Gosub Gyro_kalibrace_nuly
Waitms 100
Do
Gosub Gyro_prijem_dat
Print X_natoceni ; " , " ; Y_natoceni ; " , " ; Z_natoceni
Waitms 200
''''''''''''''''
Loop
End
Gyro_kalibrace_nuly:
For I = 1 To 10
I2cstart
I2cwbyte Adresa_r
I2cwbyte &H00
I2cstop
I2creceive &HA5 , Gyro_prijem(1) , 0 , 6
Shift Gyro_prijem(4) , Right , 2
Shift Gyro_prijem(4) , Left , 8
Gyro_prijem(4) = Gyro_prijem(4) + Gyro_prijem(1)
Gyro_prijem(4) = Gyro_prijem(4) / 10
X_natoceni_0 = X_natoceni_0 + Gyro_prijem(4)
Shift Gyro_prijem(5) , Right , 2
Shift Gyro_prijem(5) , Left , 8
Gyro_prijem(5) = Gyro_prijem(5) + Gyro_prijem(2)
Gyro_prijem(5) = Gyro_prijem(5) / 10
Y_natoceni_0 = Y_natoceni_0 + Gyro_prijem(5)
Shift Gyro_prijem(6) , Right , 2
Shift Gyro_prijem(6) , Left , 8
Gyro_prijem(6) = Gyro_prijem(6) + Gyro_prijem(3)
Gyro_prijem(6) = Gyro_prijem(6) / 10
Z_natoceni_0 = Z_natoceni_0 + Gyro_prijem(6)
Next
Return
gyro_inic:
I2cstart
I2cwbyte Adresa_w
I2cwbyte &HFE
I2cwbyte &H04
I2cstop
Return
Gyro_prijem_dat:
I2cstart
I2cwbyte Adresa_r
I2cwbyte &H00
I2cstop
I2creceive &HA5 , Gyro_prijem(1) , 0 , 6
Shift Gyro_prijem(4) , Right , 2
Shift Gyro_prijem(4) , Left , 8
Gyro_prijem(4) = Gyro_prijem(4) + Gyro_prijem(1)
X_natoceni = Gyro_prijem(4) - X_natoceni_0
X_natoceni = X_natoceni / 20
Shift Gyro_prijem(5) , Right , 2
Shift Gyro_prijem(5) , Left , 8
Gyro_prijem(5) = Gyro_prijem(5) + Gyro_prijem(2)
Y_natoceni = Gyro_prijem(5) - Y_natoceni_0
Shift Gyro_prijem(6) , Right , 2
Shift Gyro_prijem(6) , Left , 8
Gyro_prijem(6) = Gyro_prijem(6) + Gyro_prijem(3)
Z_natoceni = Gyro_prijem(6) - Z_natoceni_0
Waitms 100
Return