Re: I2C + atmega32
ну и я тогда присоединюсь к теме: датчик подключаю, настройки устанавливаю согласно даташита, удачно считываю Identification register A,B,C. т.е. Работа по I2C правильная, данные получаю корректные. Теперь задам вопрос по получению данных по координатам осей: на плате нарисованы X и Y стрелочки, Z - точка. Стрелкой X направляю примерно на север. С платы получаю только данные без математики и обработки. 255-167-255-67-0-1. Согласно даташиту, данные считываются как X,Z,Y.
Здесь: x[0]=255, x[1]=167, z[0]=255, z[1]=67, y[0]=0, y[1]=1.
Стоит чуть повернуть плату (ось вращения совпадает с осью X) и данные искажаются
x[0]=255, x[1]=167, z[0]=255, z[1]=67, y[0]=255, y[1]=254.
Далее попытаемся сосчитать угол
x=255*256+167=65447
y=255*256+254=65534
Однако согласно даташита значение X,Y,Z должно лежать в пределах 0x07FF‹значение‹0xF800 (2047‹значение‹63488 )
где что у меня не так?
Далее при повороте с юга на восток изменяется значения только младших байтов X и Y. Правильно ли это?
Последний раз редактировалось aalleexxaa; 29.06.2013 в 12:01.
|