Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
30.10.2012, 20:11
|
#1
|
Прохожий
Регистрация: 30.10.2012
Сообщений: 7
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Обработка данных с L3G4200D
Всем привет! У меня есть датчик L3G4200D (Датчик угловой скорости).
Я пытаюсь принять с него данные о скорости вращения. Использую следующую конфигурацию (то, что записываю в регистры, сначала регистр, потом значение в шестнадцанеричной системе счисления):
0х20 - 0хF
0х21 - 0х0
0х22 - 0х8
0х23 - 0х11
0х24 - 0х0
Регистр WHO I AM (0хF) считываю успешно.
Но при считывании данных с регистра 0х28 и 0х29 (высокий и нижний байт одной из осей) получаю какие-то хаотичные данные, которые никак не могу привести к физическому виду (к градусам/с). Подскажите, пожалуйста, как это сделать.
Спасибо за помощь !
Вот такие картинки получаю:
|
|
|
|
30.10.2012, 21:38
|
#2
|
Почётный гражданин KAZUS.RU
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
|
Re: Обработка данных с L3G4200D
Вроде 0x28 - low (младший байт), а 0х29 - high (старший байт). Не перепутали местами?
|
|
|
|
30.10.2012, 23:19
|
#3
|
Вид на жительство
Регистрация: 10.08.2005
Сообщений: 385
Сказал спасибо: 0
Сказали Спасибо 161 раз(а) в 140 сообщении(ях)
|
Re: Обработка данных с L3G4200D
Код:
|
Wx = (float)(((short)Data_0x29 *256) + Data_0x28)*0.00875; // для 250 гр/с |
Последний раз редактировалось Alecsej; 30.10.2012 в 23:33.
|
|
|
Сказали "Спасибо" Alecsej
|
|
|
31.10.2012, 08:35
|
#4
|
Прохожий
Регистрация: 30.10.2012
Сообщений: 7
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Обработка данных с L3G4200D
Сообщение от Boba_spb
|
Не перепутали местами?
|
Да, действительно, перепутала.
Сообщение от Alecsej
|
Код:
|
Wx = (float)(((short)Data_0x29 *256) + Data_0x28)*0.00875; // для 250 гр/с |
|
О, так просто, оказывается! Попробую. Спасибо вам большое. А что значит (short)?
|
|
|
|
31.10.2012, 09:21
|
#5
|
Почётный гражданин KAZUS.RU
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
|
Re: Обработка данных с L3G4200D
(short) - это преобразование типа переменной. В данном случае из байта делает два байта
|
|
|
Сказали "Спасибо" Boba_spb
|
|
|
31.10.2012, 09:38
|
#6
|
Прохожий
Регистрация: 30.10.2012
Сообщений: 7
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Обработка данных с L3G4200D
А пример не могли бы привести? Допустим, приняли данные (0x28-0х10 , 0х29-0х13)
и (0x28-0хF1 , 0х29-0хD8 ). Какая угловая скорость получится в этих двух случаях?
Последний раз редактировалось MsDaria; 31.10.2012 в 10:24.
|
|
|
|
31.10.2012, 12:09
|
#7
|
Вид на жительство
Регистрация: 10.08.2005
Сообщений: 385
Сказал спасибо: 0
Сказали Спасибо 161 раз(а) в 140 сообщении(ях)
|
Re: Обработка данных с L3G4200D
(0x28-0х10 , 0х29-0х13) = (0x13*256 + 0x10) * 0.00875 = 4880 * 0.00875 ~ 42.7 гр/сек
(0x28-0хF1 , 0х29-0хD8 ) = (0xD8F1 * 0.00875) = (-9999) * 0.00875 ~ -87.49 гр/сек
|
|
|
Сказали "Спасибо" Alecsej
|
|
|
31.10.2012, 12:27
|
#8
|
Прохожий
Регистрация: 30.10.2012
Сообщений: 7
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Обработка данных с L3G4200D
Alecsej, спасибо, вам большое!
|
|
|
|
31.10.2012, 12:41
|
#9
|
Прохожий
Регистрация: 30.10.2012
Сообщений: 7
Сказал спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Обработка данных с L3G4200D
это сообщение можно удалить*
Последний раз редактировалось MsDaria; 31.10.2012 в 12:47.
|
|
|
|
31.10.2012, 19:50
|
#10
|
Вид на жительство
Регистрация: 10.08.2005
Сообщений: 385
Сказал спасибо: 0
Сказали Спасибо 161 раз(а) в 140 сообщении(ях)
|
Re: Обработка данных с L3G4200D
Всегда пожалуйста.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 02:45.
|
|