Как быть если нужно работать с дробными цифрами
|
|
RA9UBD |
Дата: Ср, 19.11.2008, 17:32 | Сообщение # 1 |
Группа:
Проверенные
Ранг:
Понимаю
Сообщений:
63
Замечания:
±
На сайте с 11.04.2008
Статус:
Offline
|
PIC BASIC понимает только целые числа. А если число 3,87 то он его округлит до 3. Почему не до 4? В общем мне нужно что бы PIC BASIC округлял до ближайшего целого. Например если менее 3,5 то до 3-х, а если более 3,5 то до 4-х. У меня есть книга Чака Хелибайка. Но там про это ни слова. Но есть двойное деление "//". Забыл как называется. Может оно поможет? Заранее спасибо.
Сообщение отредактировал
RA9UBD - Ср, 19.11.2008, 17:33
|
|
|
|
ADMIN |
Дата: Ср, 19.11.2008, 19:07 | Сообщение # 2 |
Администратор
Группа:
Администраторы
Ранг:
Специалист
Сообщений:
1085
Замечания:
±
На сайте с 20.08.2007
Статус:
Offline
|
А в протоне есть переменная типа float, которая работает с числами с плавающей запятой.
|
|
|
|
RA9UBD |
Дата: Чт, 20.11.2008, 15:24 | Сообщение # 3 |
Группа:
Проверенные
Ранг:
Понимаю
Сообщений:
63
Замечания:
±
На сайте с 11.04.2008
Статус:
Offline
|
Что такое Протон?
|
|
|
|
ADMIN |
Дата: Пт, 21.11.2008, 04:52 | Сообщение # 4 |
Администратор
Группа:
Администраторы
Ранг:
Специалист
Сообщений:
1085
Замечания:
±
На сайте с 20.08.2007
Статус:
Offline
|
Во-первых вот есть книга, в которой описывается способ работы с дробными числами в PicBasicPro. Во-вторых, Proton PicBasic - такой же компилятор, что и PicBasicPro, но на мой взгляд, получше. Вот первая часть, вот вторая. Распаковывается в один архив.
|
|
|
|
RA9UBD |
Дата: Пт, 21.11.2008, 17:08 | Сообщение # 5 |
Группа:
Проверенные
Ранг:
Понимаю
Сообщений:
63
Замечания:
±
На сайте с 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 |
Администратор
Группа:
Администраторы
Ранг:
Специалист
Сообщений:
1085
Замечания:
±
На сайте с 20.08.2007
Статус:
Offline
|
2 и более ШИМ есть только у 18-й и выше сериях PIC, по-моему. Покопайте в ту сторону, там, правда и ног и аппаратных ресурсов много. Ну 28 ног, например, это не слишком много. В крайнем случае можно взять 2 PIC16F628 в корпусе SOIC, если места не хватает. Стоят они недорого.
|
|
|
|
RA9UBD |
Дата: Пт, 21.11.2008, 17:24 | Сообщение # 7 |
Группа:
Проверенные
Ранг:
Понимаю
Сообщений:
63
Замечания:
±
На сайте с 11.04.2008
Статус:
Offline
|
У меня не получается распакавать эти архивы... Чем распаковывать? Расширение .001 что такое? Там по мему особый распаковщик нужен? Когда Протеус качал, то же такие же расширения файлов было...
|
|
|
|
ADMIN |
Дата: Пт, 21.11.2008, 17:32 | Сообщение # 8 |
Администратор
Группа:
Администраторы
Ранг:
Специалист
Сообщений:
1085
Замечания:
±
На сайте с 20.08.2007
Статус:
Offline
|
Там, где вы скачивали, есть описание. открывается это все в тотал коммандере. Скидываете все в одну папку, в тотале в этой папке запускаете файл с расширением CRC и все должно вместе собраться.
|
|
|
|
RA9UBD |
Дата: Пт, 21.11.2008, 17:38 | Сообщение # 9 |
Группа:
Проверенные
Ранг:
Понимаю
Сообщений:
63
Замечания:
±
На сайте с 11.04.2008
Статус:
Offline
|
Ааа, всё вспомнил, что в тотал командере всё собирается. Я что той книге что вы мне дали, не нашёл как работать с дробными числами. В принципе, это почти копия книги Чака Хелибайка, которая у меня есть. Тольк отредактированная. Если там где то описывается как работать с дробными числами, пожалуйста, укажите № страницы. Я реально не нашёл...
|
|
|
|
ADMIN |
Дата: Пт, 21.11.2008, 18:01 | Сообщение # 10 |
Администратор
Группа:
Администраторы
Ранг:
Специалист
Сообщений:
1085
Замечания:
±
На сайте с 20.08.2007
Статус:
Offline
|
Я извиняюсь, все перепутал. Я так ответил потому, что вот совсем недавно попалась на глаза книга, на ноуте на работе, и я, отвечая в первый раз, решил, что это она и есть. Но сейчас скачал эту и оказалось не та. Теперь только в воскресенье буду на работе, заберу. Там смысл в том, что для целого числа берется отдельный байт(слово) и для дробной части берется байт(слово).
|
|
|
|
RA9UBD |
Дата: Пт, 21.11.2008, 18:06 | Сообщение # 11 |
Группа:
Проверенные
Ранг:
Понимаю
Сообщений:
63
Замечания:
±
На сайте с 11.04.2008
Статус:
Offline
|
Всё установилось. Правда при установки мой антивирс NOD32, обнаружил вирус Троян. Так что проверяй свой комп. Смотри скриншот. Quote Там смысл в том, что для целого числа берется отдельный байт(слово) и для дробной части берется байт(слово). Вот, вот это мне и нужно. Quote Теперь только в воскресенье буду на работе, заберу. Жду. Спасибо!
|
|
|
|
ADMIN |
Дата: Пт, 21.11.2008, 18:17 | Сообщение # 12 |
Администратор
Группа:
Администраторы
Ранг:
Специалист
Сообщений:
1085
Замечания:
±
На сайте с 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 |
Группа:
Проверенные
Ранг:
Понимаю
Сообщений:
91
Замечания:
±
На сайте с 14.09.2007
Статус:
Offline
|
RA9UBD Почитайте. http://ifolder.ru/9192911 Перевод корявый, но читабелен. Не устроит, оригинал здесь. http://www.melabs.com/resources/fp.htm
|
|
|
|
ADMIN |
Дата: Вс, 23.11.2008, 03:51 | Сообщение # 14 |
Администратор
Группа:
Администраторы
Ранг:
Специалист
Сообщений:
1085
Замечания:
±
На сайте с 20.08.2007
Статус:
Offline
|
Значит так: книга все-таки эта, страница с 66, описание работы жки.
|
|
|
|
RA9UBD |
Дата: Вт, 25.11.2008, 16:52 | Сообщение # 15 |
Группа:
Проверенные
Ранг:
Понимаю
Сообщений:
63
Замечания:
±
На сайте с 11.04.2008
Статус:
Offline
|
У меня всё получилось! Просто нужно было все значения умножить например на 100, запятая переместится на два знака вправо, и переменную для этого выбрать WORD. Потом после всех расчётов, ответ разделить на 100, опять переменна BYTE. И получится нужное мне округление ответа. Спасибо!
|
|
|
|