Отговори на тема  [ 24 мнения ]  Отиди на страница Предишна  1, 2
Bosch BMP085, Някой ползвал ли е този Сензор? 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Яну 19, 2007 9:16 am
Мнения: 1063
Местоположение: путинофили: "иди н***й"
Мнение Re: Bosch BMP085, Някой ползвал ли е този Сензор?
Всичките ти константи се възприемат като int16 (най-вероятно щото такъв ти е компилатора - идея си нямам за какво говориш - но явно е C компилатор :) ) ...

т.е. за твоя компилатор
int16 * int16 == int16

какво има да се чудиш още !?

ако поне едната е int32 - резултата ще е int32 ... и всичко ще е както го очакваш !


Сря Яну 18, 2012 2:19 pm
Профил
Ранг: Професионалист
Ранг: Професионалист
Аватар

Регистриран на: Нед Ное 08, 2009 12:17 am
Мнения: 512
Мнение Re: Bosch BMP085, Някой ползвал ли е този Сензор?
AVR Studio 5 Ползвам с неговия си компилатор, GCC мисля се водеше.
Не съм много навътре с типовете променливи още. Ясни са ми ама малко не ми е ясно в случая когато прави математическа операция с една short и една long променлива какво се случва но поне знам къде д/г е проблема :) ще чета още мерси много за помощта


Сря Яну 18, 2012 2:54 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Окт 11, 2011 11:53 pm
Мнения: 4582
Местоположение: Brussels / Пловдив
Мнение Re: Bosch BMP085, Някой ползвал ли е този Сензор?
klez написа:
AVR Studio 5 Ползвам с неговия си компилатор, GCC мисля се водеше.
Не съм много навътре с типовете променливи още. Ясни са ми ама малко не ми е ясно в случая когато прави математическа операция с една short и една long променлива какво се случва но поне знам къде д/г е проблема :) ще чета още мерси много за помощта

Ето ти една страница относно темата за грешки в калкулациите заради типовете на променливите, като цяло е доста дълбока вода ама като се поблъскаш неколко години му хващаш цаката :D
http://www.fefe.de/intof.html
Ако подредиш добре реда на сметките може да избягяш от препълвания и т.н. и да работиш прецизно без изненади.

_________________
Мразя да мразя ...


Сря Яну 18, 2012 4:53 pm
Профил
Ранг: Професионалист
Ранг: Професионалист
Аватар

Регистриран на: Нед Ное 08, 2009 12:17 am
Мнения: 512
Мнение Re: Bosch BMP085, Някой ползвал ли е този Сензор?
:D мерси. Пробвах да го преподреждам ама не ми се получи особено успешно ;). Ще чета пък след няколко години пак ще пиша ако съм схванал работата ;-)

Реално не би трябвало да се получава Overflow, щото като сложа на мястото на променливата Число (със същата стойност като променливата) и всичко е наред.
Също ако на горния ред напиша: tempvalue = 33898; И после да ползвам променливата... пак става работата.
Но като напиша tempvalue = bmp_read_16bit(); // Функция за четене по Twi
и тогава вече не става. tempvalue ми е Long, функцията връща Short :) там някъде се оплескват нещата. Но реално дори и да променя функцията да връща Long и променливите в нея да са Long пак същата работа ;)

Ох бая четене ще трябва още явно


ОПРАВЕНО

Функцията която ми четеше 16 бита от 2 последователни регистъра от сензора я сложих да е със Unsigned променливи. и всичко е ок сега с температурата.
Продължавам нататък с атмосферното налягане.


Сря Яну 18, 2012 5:23 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Вто Окт 11, 2011 11:53 pm
Мнения: 4582
Местоположение: Brussels / Пловдив
Мнение Re: Bosch BMP085, Някой ползвал ли е този Сензор?
klez написа:
Също ако на горния ред напиша: tempvalue = 33898; И после да ползвам променливата... пак става работата.

Хич да не те учудва - съвсем в реда на нещата си е защото компилатора докато оптимизира генерирания код има в предвид че правиш сметки само с константи и ги изчислява още compile-time и то с по голяма прецизност отколкото после в run-time, дори може да замени всичките ти калкулации с едно число :)
Хвъляй от време на време едно око с дебъгер и дизасемблер и ще видиш каква е разликата.

_________________
Мразя да мразя ...


Сря Яну 18, 2012 10:26 pm
Профил
Ранг: Професионалист
Ранг: Професионалист
Аватар

Регистриран на: Нед Ное 08, 2009 12:17 am
Мнения: 512
Мнение Re: Bosch BMP085, Някой ползвал ли е този Сензор?
Получих и някаква стойност за атмосферното налягане.
Макар че според тази стойност атмосферното налягане трябва да е 290 хекто паскала, което не е възможно. По-важното в случая е, че го измерва сравнително прецизно и
усеща разликата в налягането като вдигна сензора 60-70см по-нагоре, което в случая и ми трябва. Утре ще го боря да видя от къде се получава грешката и как да го
получа по-точно за да мога да смятам и надморска височина


Пет Яну 20, 2012 12:32 am
Профил
Ранг: Професионалист
Ранг: Професионалист
Аватар

Регистриран на: Нед Ное 08, 2009 12:17 am
Мнения: 512
Мнение Re: Bosch BMP085, Някой ползвал ли е този Сензор?
Оправих и атмосферното.
Оказа се, че просто функцията която ползвам за извеждане на дисплея на информация преобразува Integer-а в String със itoa()
Integer to String
а Integer-а всъщност е Long Integer и трябва да се ползва функцията ltoa() (long to string) ili ultoa() (Unsigned long to string)
Сега вече извежда нормално
930 hPa


Чет Яну 26, 2012 1:06 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Вто Яну 20, 2009 11:54 pm
Мнения: 11338
Местоположение: "Занзибар"
Мнение Офтопик
Радвам се, че klez си е решил проблема но за пореден път ме напуши стара питанка: когато става дума за нещо сериозно що налитате на езици и компилатори вместо на асемблер?! Белосването е едно и също но при асемблера всичко е ясно и сигурно.
Някой ще каже: "Как да напиша всичко това на асемблер?!". Не че не може ама златната среда е известна от времето на Правчо82: сериозното на асемблер а интерфейса на бейсик :)


Чет Яну 26, 2012 9:04 pm
Профил
Ранг: Професионалист
Ранг: Професионалист
Аватар

Регистриран на: Нед Ное 08, 2009 12:17 am
Мнения: 512
Мнение Re: Bosch BMP085, Някой ползвал ли е този Сензор?
бонго, ще си го кажа направо...
трудно ми е на асемблер...
на времето почнах да пиша на асемблер за разни PIC-ове... честно да ти кажа бая зор ми беше.
Не че не успявах да ги напиша нещата но доста по трудничко ми беше.
Сигурен съм, че ако се науча ще ми е много по-лесно впоследствие и за дебъгването... но за момента ми е доста трудно, от скоро се занимавам с микроконтролери.
За момента реших проблемите, сега вече ще смятам надморска височина и т.н. но те нямат много общо с датчика. Така че надявам се ако някой се сблъска с тая серия датчици темата да му е полезна или ако не... да пита да помагам с каквото мога :)


Чет Яну 26, 2012 9:18 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 24 мнения ]  Отиди на страница Предишна  1, 2

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 6 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни