отрицательные значение переменных - Форум Picbasic.ru
Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 212»
Модератор форума: ivan_fd 
Форум Picbasic.ru » Программирование МК » PicBasicPro » отрицательные значение переменных
отрицательные значение переменных
sa137 Дата: Вт, 08.07.2014, 21:16  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Начал соображать
Сообщений: 33
Репутация: 0   ±
Замечания:   ±
На сайте с 04.07.2011

Статус: Offline

Ковыряю датчик BMP085

получается вычитать константы, получить текущие данные давления и температуры.

не могу посчитать реальные с учетом поправок...

как оказывается, константы могут быть отрицательными....

код, без лишнего:



но в итоге получается чушь..

посмотрел примеры кода... многие пишут на протоне, сях.. там как то со знаком проще...
как решить эту проблему ?
ЯНДЕКС Дата: 08.07.2014
ivan_fd Дата: Вт, 08.07.2014, 22:09  |                                                                                                                Сообщение # 2
Группа: Модераторы
Ранг:  Специалист
Сообщений: 882
Репутация: 47   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

Вот http://www.picbasic.ru/forum/5-1596-1#14272 есть проект на протоне. Посмотрите там.

А в PBP переменные со знаком, могут быть только типа LONG. Если я правильно понял из описания.
sa137 Дата: Вт, 08.07.2014, 23:37  |                                                                                                                Сообщение # 3
Группа: Проверенные
Ранг:  Начал соображать
Сообщений: 33
Репутация: 0   ±
Замечания:   ±
На сайте с 04.07.2011

Статус: Offline

видел. многим помог именно этот проект.
но на PBP никогда не писал...

хочется решить проблему именно на чистом пикбейсике.

Сообщение отредактировал sa137 - Вт, 08.07.2014, 23:40
MiXaS Дата: Ср, 09.07.2014, 09:40  |                                                                                                                Сообщение # 4
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 613
Репутация: 26   ±
Замечания:   ±
На сайте с 02.10.2010

Статус: Offline

Вы хотите сказать, что протон это грязный picbasic?!

Протон - это усовершенствованный picbasicpro.
sa137 Дата: Ср, 09.07.2014, 13:39  |                                                                                                                Сообщение # 5
Группа: Проверенные
Ранг:  Начал соображать
Сообщений: 33
Репутация: 0   ±
Замечания:   ±
На сайте с 04.07.2011

Статус: Offline

>>Вы хотите сказать, что протон это грязный picbasic?!

это адская жесть...
вы телепат ? я вообще о чем спрашивал?
MiXaS Дата: Ср, 09.07.2014, 14:17  |                                                                                                                Сообщение # 6
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 613
Репутация: 26   ±
Замечания:   ±
На сайте с 02.10.2010

Статус: Offline

Цитата sa137 ()
вы телепат ?

Нет. Вы спросили
Цитата sa137 ()
хочется решить проблему именно на чистом пикбейсике.
, я ответил
Цитата sa137 ()
Вы хотите сказать, что протон это грязный picbasic?!


Зачем Вам picbasicpro? Судя по всемы Вы новичок, так и изучайте сразу нормальную среду разработки, где есть возможность работать со знаком...

Есть еще один вариант, для ВАС. Знак определять самостоятельно. Для этого нужно знать формат числа. В разных кодировках по-разному определяется знак.

На пальцах: К примеру вы знаете формат числа. Его 15 бит отвечает за знак: Если он = 1, то значение числа отрицательное...
sa137 Дата: Чт, 10.07.2014, 02:11  |                                                                                                                Сообщение # 7
Группа: Проверенные
Ранг:  Начал соображать
Сообщений: 33
Репутация: 0   ±
Замечания:   ±
На сайте с 04.07.2011

Статус: Offline

MiXaS14319
Цитата
Зачем Вам picbasicpro?


я не могу потратить часть своей жизни на бессмысленное изучение всего, что прикольно и правильно...

я сделал 10-15 мелких поделок, и такой проблемы у меня не возникало никогда.

здесь она "вылезла" на столько явно, что с ходу я побороть ее не смог.

Цитата MiXaS ()
Для этого нужно знать формат числа.
в даташите об этом очевидного ничего нет..
больше информации я подчерпнул в чужом коде..

будем пробовать дальше...
MiXaS Дата: Чт, 10.07.2014, 11:54  |                                                                                                                Сообщение # 8
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 613
Репутация: 26   ±
Замечания:   ±
На сайте с 02.10.2010

Статус: Offline

Цитата sa137 ()
я не могу потратить часть своей жизни на бессмысленное изучение всего, что прикольно и правильно...


Ну тогда вопрос. Что Вы здесь делаете?

Для изучения чего-либо необходимо потрать время.

Добавлено (10.07.2014, 11:54)
---------------------------------------------

Цитата sa137 ()
в даташите об этом очевидного ничего нет.. больше информации я подчерпнул в чужом коде..


Я поглядел в своем коде. Результирующая переменная формата float, то есть 4 байта и имеет такой формат:
Format Exponent Mantissa 0 Mantissa 1 Mantissa 2
Microchip xxxx xxxy sxxx xxxx xxxx xxxx xxxx xxxx, где s - это знак"-", y - младший бит экспоненты

Мне кажется на разбор формата больше времени уйдет.

На pbp правильно опросить этот датчик не получится, так как Из даташита: большая часть переменных имеют формат LONG. LONG это 64 бита, имеет диапазон -9, 223, 372,036, 854, 775, 808 ... 9, 223, 372, 036, 854, 775, 807 значений.

BPB не тянет такие данные.
удачи
sa137 Дата: Пт, 11.07.2014, 01:45  |                                                                                                                Сообщение # 9
Группа: Проверенные
Ранг:  Начал соображать
Сообщений: 33
Репутация: 0   ±
Замечания:   ±
На сайте с 04.07.2011

Статус: Offline

10 страница даташита:

3.4 Calibration coefficients
The 176 bit E2PROM is partitioned in 11 words of 16 bit each. These contain 11 calibration coefficients. Every sensor module has individual coefficients. Before the first calculation of temperature and pressure, the master reads out the E2PROM data. The data communication can be checked by checking that none of the words has the value 0 or 0xFFFF.

переводить не стану..
но понятно, что речь в константах не идет не о каких  < LONG это 64 бита>

об остальных умозаключениях писать не стану.. пускай это останется на вашей совести smile
MiXaS Дата: Пт, 11.07.2014, 13:03  |                                                                                                                Сообщение # 10
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 613
Репутация: 26   ±
Замечания:   ±
На сайте с 02.10.2010

Статус: Offline

Я не знаю на чьей совести что должно остаться, но у меня все работает правильно! А у вас вообще ничего не работает, и вы меня будете учить???
MiXaS Дата: Пт, 11.07.2014, 13:07  |                                                                                                                Сообщение # 11
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 613
Репутация: 26   ±
Замечания:   ±
На сайте с 02.10.2010

Статус: Offline

Вы сами пишете калибровочные коэф! Я говорю про калькуляцию!
Вот скриншот для тех кто в большом бронепоезде!
Прикрепления: 9813662.jpg(81Kb)
ivan_fd Дата: Пт, 11.07.2014, 16:52  |                                                                                                                Сообщение # 12
Группа: Модераторы
Ранг:  Специалист
Сообщений: 882
Репутация: 47   ±
Замечания:   ±
На сайте с 12.01.2009

Статус: Offline

В PBP есть переменная типа LONG, но она только для семейства PIC18.

    Написать код для  BMP085 на PBP конечно можно, но это морока еще та. Почему же не взять
немного лучший компилятор и не парится????? Например, тот же Протон. Поверьте, отличия, по сравнению с PBP 
не большие.
xvovanx Дата: Вс, 13.07.2014, 00:09  |                                                                                                                Сообщение # 13
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 247
Репутация: 12   ±
Замечания:   ±
На сайте с 02.05.2013

Статус: Offline

Цитата ivan_fd ()
Почему же не взять немного лучший компилятор и не парится????? Например, тот же Протон. Поверьте, отличия, по сравнению с PBP  не большие.


+1. В своё время долго мучился с ошибками в работе программ (неправильная частота импульсов и временные задержки) после компилятора PBP. По совету форумчан с лёту "пересел" на Протон. Программу с PBP на Протон переписал за один вечер, а не за
Цитата sa137 ()
я не могу потратить часть своей жизни на бессмысленное изучение всего, что прикольно и правильно...

Сообщение отредактировал xvovanx - Вс, 13.07.2014, 14:43
MiXaS Дата: Вс, 13.07.2014, 22:34  |                                                                                                                Сообщение # 14
Группа: Проверенные
Ранг:  Разобрался
Сообщений: 613
Репутация: 26   ±
Замечания:   ±
На сайте с 02.10.2010

Статус: Offline

sa137, если мне не верите, хотя я тоже начинал с пикбасика, то вот еще пример xvovanx. Решить вашу проблему намного проще используя другой компилятор, тем более, что у вас есть пример уже на протоне. Это гороздо проще и быстрее, нежели пилить пикбасик. Если вы так беспокоитесь о своем драгоценном, то проще сделать один прект на протоне (взять рыбу, которая у вас уже есть и довести до стадии проекта) и забыть про пик басик.
Broka Дата: Пн, 14.07.2014, 23:23  |                                                                                                                Сообщение # 15
Группа: Проверенные
Ранг:  Могу и подсказать
Сообщений: 244
Репутация: 9   ±
Замечания:   ±
На сайте с 30.09.2009

Статус: Offline

Вот правильно тебе MiXaS, говорит, у Протон возможностей по больше. Попробуй.... убедишся сам потом.
Форум Picbasic.ru » Программирование МК » PicBasicPro » отрицательные значение переменных
Страница 1 из 212»
Поиск: