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

Статус: Offline

PIC BASIC понимает только целые числа. А если число 3,87 то он его округлит до 3. Почему не до 4? В общем мне нужно что бы PIC BASIC округлял до ближайшего целого. Например если менее 3,5 то до 3-х, а если более 3,5 то до 4-х.

У меня есть книга Чака Хелибайка. Но там про это ни слова. Но есть двойное деление "//". Забыл как называется. Может оно поможет?

Заранее спасибо.

Сообщение отредактировал RA9UBD - Ср, 19.11.2008, 17:33
ЯНДЕКС Дата: 19.11.2008
ADMIN Дата: Ср, 19.11.2008, 19:07  |                                                                                                                Сообщение # 2
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1097
Репутация: 24   ±
Замечания:   ±
На сайте с 20.08.2007

Статус: Offline

А в протоне есть переменная типа float, которая работает с числами с плавающей запятой.
RA9UBD Дата: Чт, 20.11.2008, 15:24  |                                                                                                                Сообщение # 3
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 67
Репутация: 0   ±
Замечания:   ±
На сайте с 11.04.2008

Статус: Offline

Что такое Протон?
ADMIN Дата: Пт, 21.11.2008, 04:52  |                                                                                                                Сообщение # 4
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1097
Репутация: 24   ±
Замечания:   ±
На сайте с 20.08.2007

Статус: Offline

Во-первых вот есть книга, в которой описывается способ работы с дробными числами в PicBasicPro. Во-вторых, Proton PicBasic - такой же компилятор, что и PicBasicPro, но на мой взгляд, получше. Вот первая часть, вот вторая. Распаковывается в один архив.
RA9UBD Дата: Пт, 21.11.2008, 17:08  |                                                                                                                Сообщение # 5
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 67
Репутация: 0   ±
Замечания:   ±
На сайте с 11.04.2008

Статус: Offline

Срасибо огромное! Буду читать, пробовать Proton PICBasic.

У меня не получается распакавать эти архивы... Чем распаковывать?

Написал уже несколько рабочих программ. Работают стабильно. Очень рад что есть PICBasic, если бы не он, никогда бы не начал изучать микроконтроллеры. Т.к. языки СИ и тем более ассеблер меня отпугивают своей полной, для меня, непонятностью. Дело в том что я, когда то был ярям поклонником компьютера ZX-Spektrum. От туда я заню Basic. Позже изучал Паскаль на IBM PC. По этому, для меня эти типы языков очень понятны и прозрачны. А ассемблер требует хорошо знать архитектуру проца, а это для меня тёмный лес. Но позже я кнечно постепенно переползу на СИ, а там может быть и на ассемблер, если потребуется.

Сейчас занимаюсь написанием программы для регулятора ходя с реверсом, для радиоуправляемых моделей. Основанно всё на считывании канального импульса, приходящего с приёмника, и генерации ШИМ, аппаратным ШИМ модулятором, на cиловой MOSFET. Одна версия, в колличестве 2-х штук, уже работает на автомоделях. Уже пару месяцев, и не выходит из строя, очень надёжно.

Проблема PICBasic, что он не может одновременно замерять длительность приходящих управляющих импульсов, и выводить шим, без использования аппаратного ШИМ модулятора. Если пишут на ассемблере, то используют прерывания. Но как их применить в PIC, я понятия не имею. Сейчас для следующей разработки, мне требуется два ШИМ модулятора. Но те процы которые имеют два аппаратных ШИМ модулятора - дороги (например 16F876) и по габаритам велики, да и не все порты будут задействованны, остальные просто в воздухе остануться. А те которые меньше по габаритам, там всего один аппаратный ШИМ модулятор.

Есть ли такой PIC, у которго не более 18 ног, и два аппаратных ШИМ модулятора?

Спасибо за информацию!

Сообщение отредактировал RA9UBD - Пт, 21.11.2008, 17:10
ADMIN Дата: Пт, 21.11.2008, 17:18  |                                                                                                                Сообщение # 6
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1097
Репутация: 24   ±
Замечания:   ±
На сайте с 20.08.2007

Статус: Offline

2 и более ШИМ есть только у 18-й и выше сериях PIC, по-моему. Покопайте в ту сторону, там, правда и ног и аппаратных ресурсов много. Ну 28 ног, например, это не слишком много. В крайнем случае можно взять 2 PIC16F628 в корпусе SOIC, если места не хватает. Стоят они недорого.
RA9UBD Дата: Пт, 21.11.2008, 17:24  |                                                                                                                Сообщение # 7
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 67
Репутация: 0   ±
Замечания:   ±
На сайте с 11.04.2008

Статус: Offline

У меня не получается распакавать эти архивы... Чем распаковывать?

Расширение .001 что такое? Там по мему особый распаковщик нужен? Когда Протеус качал, то же такие же расширения файлов было...

ADMIN Дата: Пт, 21.11.2008, 17:32  |                                                                                                                Сообщение # 8
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1097
Репутация: 24   ±
Замечания:   ±
На сайте с 20.08.2007

Статус: Offline

Там, где вы скачивали, есть описание. открывается это все в тотал коммандере. Скидываете все в одну папку, в тотале в этой папке запускаете файл с расширением CRC и все должно вместе собраться.
RA9UBD Дата: Пт, 21.11.2008, 17:38  |                                                                                                                Сообщение # 9
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 67
Репутация: 0   ±
Замечания:   ±
На сайте с 11.04.2008

Статус: Offline

Ааа, всё вспомнил, что в тотал командере всё собирается.

Я что той книге что вы мне дали, не нашёл как работать с дробными числами.
В принципе, это почти копия книги Чака Хелибайка, которая у меня есть. Тольк отредактированная.

Если там где то описывается как работать с дробными числами, пожалуйста, укажите № страницы. Я реально не нашёл...

ADMIN Дата: Пт, 21.11.2008, 18:01  |                                                                                                                Сообщение # 10
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1097
Репутация: 24   ±
Замечания:   ±
На сайте с 20.08.2007

Статус: Offline

Я извиняюсь, все перепутал. Я так ответил потому, что вот совсем недавно попалась на глаза книга, на ноуте на работе, и я, отвечая в первый раз, решил, что это она и есть. Но сейчас скачал эту и оказалось не та. Теперь только в воскресенье буду на работе, заберу. Там смысл в том, что для целого числа берется отдельный байт(слово) и для дробной части берется байт(слово).
RA9UBD Дата: Пт, 21.11.2008, 18:06  |                                                                                                                Сообщение # 11
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 67
Репутация: 0   ±
Замечания:   ±
На сайте с 11.04.2008

Статус: Offline

Всё установилось. Правда при установки мой антивирс NOD32, обнаружил вирус Троян. Так что проверяй свой комп. Смотри скриншот.

Quote
Там смысл в том, что для целого числа берется отдельный байт(слово) и для дробной части берется байт(слово).

Вот, вот это мне и нужно.

Quote
Теперь только в воскресенье буду на работе, заберу.

Жду.

Спасибо!

ADMIN Дата: Пт, 21.11.2008, 18:17  |                                                                                                                Сообщение # 12
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1097
Репутация: 24   ±
Замечания:   ±
На сайте с 20.08.2007

Статус: Offline

Это при установке Протона у меня тоже выскакивает. Думаю хакеры, которые взламывали, сунули туда что-то. Заражен файл VHB Explorer - этот файл - надстройка для протона. Там в папке samples есть папка Proteus. Если что-либо из этой папки скомпилировать и потом запустить View -> plugin -> Labcenter electronics Proteus VSM, или просто нажать клавишу F12, то появится окно, в котором можно выбрать готовый проект под определенный PIC (16 или 18 серии) и проверить работу программы.
evgenb Дата: Пт, 21.11.2008, 18:42  |                                                                                                                Сообщение # 13
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 92
Репутация: 3   ±
Замечания:   ±
На сайте с 14.09.2007

Статус: Offline

RA9UBD
Почитайте. http://ifolder.ru/9192911
Перевод корявый, но читабелен. Не устроит, оригинал здесь.
http://www.melabs.com/resources/fp.htm
ADMIN Дата: Вс, 23.11.2008, 03:51  |                                                                                                                Сообщение # 14
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1097
Репутация: 24   ±
Замечания:   ±
На сайте с 20.08.2007

Статус: Offline

Значит так: книга все-таки эта, страница с 66, описание работы жки.
RA9UBD Дата: Вт, 25.11.2008, 16:52  |                                                                                                                Сообщение # 15
Группа: Проверенные
Ранг:  Понимаю
Сообщений: 67
Репутация: 0   ±
Замечания:   ±
На сайте с 11.04.2008

Статус: Offline

У меня всё получилось! Просто нужно было все значения умножить например на 100, запятая переместится на два знака вправо, и переменную для этого выбрать WORD. Потом после всех расчётов, ответ разделить на 100, опять переменна BYTE. И получится нужное мне округление ответа.

Спасибо!

Форум Picbasic.ru » Программирование МК » PicBasicPro » Как быть если нужно работать с дробными цифрами
Страница 1 из 212»
Поиск: