Проблема с компасом HMC 6352 Сначала работал, выдавал 0-360 град но как то криво, решил выяснить в чем дело и в конце концов компас стал выдавать только два угла примерно 290 и 50 град, меняется при переходе через север/юг. Сырые данные при регистре 4E =3 и 4 после калибровки и при ручной настройке сдвига меняются синхронно но с разным знаком, те тангенс угла от них как раз и будет постоянным что очень странно. Кто нить встречался с таким поведением ? Питание подается, на СА1 СВ1 есть импульсы пол питания, такое ощущение что или сбилась программа или с магниторезисторам и какая то беда случилась а может какой нить командой загнался в непонятный режим. Регистры менял все какие мог не помогло, все работает но нормального угла не выдает. Бит перезагрузки магниторезисторов стоит. Я понимаю если бы не работал совсем а так не понятно и есть шанс починить.
пзу: 0 = 68 1 = 255 2 = 251 3 = 0 4 = 5 5 = 1 6 = 1 7 = 6 8 = 0 ----------------------- 0x74 = 80 0x4E = 0 угол который выдает при полном повороте (должен выдавать 0 - 3599) angle = 2295 angle = 2294 angle = 2296 angle = 2295 angle = 2294 angle = 2295 angle = 2298 angle = 2297 angle = 2298 angle = 2297 angle = 2295 angle = 2299 angle = 2298 angle = 2300 angle = 2300 angle = 2300 angle = 2307 angle = 2304 angle = 2305 angle = 2331 angle = 2700 angle = 450 angle = 481 angle = 479 angle = 489 angle = 492 angle = 491 angle = 492 angle = 491 angle = 495 angle = 496 angle = 495 angle = 495 angle = 496 angle = 495 angle = 497 angle = 495 angle = 499 angle = 507 angle = 563 angle = 2281 angle = 2292 angle = 2293 angle = 2290 angle = 2292 angle = 2296 angle = 2294 angle = 2296 angle = 2294 angle = 2296 angle = 2296 angle = 2295 angle = 2296 angle = 2294 angle = 2294 angle = 2296 angle = 2297 angle = 2295 angle = 2297 angle = 2296 angle = 2294 angle = 2296 angle = 2294 Raw данные с каждого магниторезистора с компенсацией (4E =3, 4) Видно что данные меняются по абс величине синхронно, и тангенс будет один примерно, как из них получить 0-360 град непонятно. X = -110 Y =125 X = -110 Y =133 X = -112 Y =133 X = -112 Y =138 X = -120 Y =138 X = -120 Y =145 X = -121 Y =145 X = -121 Y =141 X = -117 Y =141 X = -117 Y =128 X = -99 Y =128 X = -99 Y =100 X = -76 Y =100 X = -76 Y =74 X = -56 Y =74 X = -56 Y =54 X = -34 Y =54 X = -34 Y =24 X = -8 Y =24 X = -8 Y =-4 X = 14 Y =-4 X = 14 Y =-23 X = 31 Y =-23 X = 31 Y =-49 X = 53 Y =-49 X = 53 Y =-71 X = 67 Y =-71 X = 67 Y =-87 X = 80 Y =-87 X = 80 Y =-100 X = 87 Y =-100 X = 87 Y =-104 X = 91 Y =-104 X = 91 Y =-103 X = 86 Y =-103 X = 86 Y =-91 X = 72 Y =-91 X = 72 Y =-73 X = 59 Y =-73 X = 59 Y =-55 X = 39 Y =-55 X = 39 Y =-34 X = 22 Y =-34 X = 22 Y =-9 X = -7 Y =-9 X = -7 Y =20 X = -27 Y =20 X = -27 Y =45 X = -46 Y =45 X = -46 Y =67 X = -66 Y =67 X = -66 Y =91 X = -83 Y =91 X = -83 Y =101 X = -89 Y =101 X = -89 Y =106 X = -94 Y =106 X = -94 Y =112 X = -96 Y =112 X = -96 Y =118 X = -103 Y =118 X = -103 Y =124 X = -109 Y =124 X = -109 Y =128 X = -114 Y =128 X = -114 Y =130 X = -112 Y =130 X = -112 Y =129 X = -111 Y =129 И собственно вопросы 1. как починить 2 или как из этих raw данных получить угол ? |