Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
31.01.2012, 15:29
|
|
Вид на жительство
Регистрация: 29.04.2007
Адрес: Иркутск
Сообщений: 311
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
|
Re: Деление съедает ROM
во-первых это для АВР
во-вторых (я скачал и посмотрел асмовский код)
там для целочисленных чисел, где в результате получается целая часть и остаток, а мне это не подходит.
в-третьих я как бы и сам гуглить умею
А "ключ от квартиры" я бы и сам дал и мне было бы даже приятно если вы бы им воспользовались в своей программе и мне простое спасибо сказали
|
|
|
|
31.01.2012, 19:55
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
Re: Деление съедает ROM
Вам уже советовали умножить делимое на 100-1000 и больше - тогда будет достаточно целой части результата
Качайте 4-й том, он все равно пригодится, не сегодня так завтра. И первые 2 тома тоже рекомендую
|
|
|
|
31.01.2012, 20:48
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: Деление съедает ROM
Сообщение от yellow87
|
во-первых это для АВР
|
А настолько ли принципиальна разница?
Логика работы меняется?
И вообще интересно, реально ли нужно дробное деление?
Вот для PIC...
https://kazus.ru/articles/409.html
...правда с округлением...
|
|
|
|
31.01.2012, 23:10
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.05.2005
Адрес: Саратов.ru
Сообщений: 1,548
Сказал спасибо: 384
Сказали Спасибо 737 раз(а) в 417 сообщении(ях)
|
Re: Деление съедает ROM
yellow87, ИМХО, без целочисленной математики на 12м пике всё-равно не обойдётесь.
Предложено уже несколько вариантов деления. Вам только осталось внять советам, выбрать наиболее подходящий, и начать реализовывать в коде, вопросы решатся по ходу дела.
Хватит метаться и ждать, пока кто-нибудь решит Вашу задачу за Вас.
|
|
|
|
01.02.2012, 10:05
|
|
Вид на жительство
Регистрация: 29.04.2007
Адрес: Иркутск
Сообщений: 311
Сказал спасибо: 0
Сказали Спасибо 12 раз(а) в 12 сообщении(ях)
|
Re: Деление съедает ROM
"А настолько ли принципиальна разница?"
я же написал, что посмотрел ассемблерный код, разницы там не важна
Но там целочисленное деление,
как и в "https://kazus.ru/articles/409.html"
я ещё вчера нашёл этот файл - целочисленное мне не подходит
И я не жду, что кто-то решит за меня
Я надеялся, что уже кто-то решал подобную задачу деления и может поделиться кодом.
А так, конечно, придётся самому
Хотя я не уверен, что справлюсь.
Появилась мысль заменить 629-ый 683-им, у него памяти в два раза больше
Жаль, что в наших магазинах он не продаётся
|
|
|
|
02.02.2012, 11:00
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: Деление съедает ROM
Сообщение от yellow87
|
целочисленное мне не подходит
|
Почему?
Что за точный вычислитель на крохе-629-ом?
Где используется результат деления?
Какова реально нужна точность вычислений? Все ли 5 знаков после запятой?
Например Ваши:
7,28345/12,48745=0,58326(159...) точность 5 знаков
и то же , умноженное на 65536 - просто сдвинуто на 16 разрядов влево, а по факту справа добавлено 2 пустых 8-ми битных регистра/ячейки памяти...
477328(,1792)/818377(,5232)=0,58326(174...) те же 5 знаков...
В скобках дробная часть делимого и делителя просто отбрасывались при делении(на самом деле оно не отбросится. Сделано для наглядности). Для результата в скобках указаны 6-ой, 7-ой и 8-ой знаки. Чтоб разницу почувствовать...
Не округляйте результат до целого, а используйте дробную часть и наступит Вам счастье...
upd
Наконец дошло...
Вы просто не представляете, в каком виде у Вас хранятся те самые пресловутые 7,28345 , 12,48745 и т.д. - вся остальная прога писана в Сях. Вот и пришла пора задуматься о пользе Асма...
Берите МК пожЫрнее и не парьтесь - сейчас это "не модно"...
Последний раз редактировалось omercury; 02.02.2012 в 11:22.
|
|
|
|
02.02.2012, 22:24
|
|
Прописка
Регистрация: 21.09.2009
Сообщений: 218
Сказал спасибо: 1
Сказали Спасибо 29 раз(а) в 27 сообщении(ях)
|
Re: Деление съедает ROM
Применяйте целочисленное деление, оно быстрее плавающей точки на 1-2 порядка.
Вот здесь http://electronix.ru/forum/index.php?showtopic=48537 мною опубликованы быстрые и компактные программки целочисленного деления 24/24-›24 и 32/32-›32, правда, под пик18, но по-моему, они подходят под 629. Разрядность может быть легко изменена для 48-56-64 битных чисел.
|
|
|
|
02.02.2012, 23:05
|
|
Вид на жительство
Регистрация: 16.09.2011
Сообщений: 343
Сказал спасибо: 10
Сказали Спасибо 171 раз(а) в 104 сообщении(ях)
|
Re: Деление съедает ROM
Нет, не подходит. У PIC18 набор инструкций вдвое больше, чем у PIC16. Т тому же, у вас там используются те инструкции, которых нет в PIC16 - например, addwfc. придется адаптировать код.
Автору - компактнее вряд ли получится. Нужно либо выбирать контроллер с большей емкостью, либо другое семейство, PIC24, с аппаратной поддержкой деления 32bit/16bit.
|
|
|
|
03.02.2012, 13:09
|
|
Заблокирован
Регистрация: 31.12.2011
Сообщений: 726
Сказал спасибо: 32
Сказали Спасибо 223 раз(а) в 162 сообщении(ях)
|
Re: Деление съедает ROM
Тема гавно, и ответы гавно.
Неистребимое ламерство повсюду, как страшно жить!
Сколько раз ГУРУ уже говорили, для PIC16 лучше старенького HI-Tech PICC STD 9.60PL3 ничего пока не придумали! Нет, ламерские пальцы веером, сопли, слюни, обмажутся всякими полу- недо- псевдо- СИ, обосрутся с ПРОТЭЗом и давай стенать на форумах "вай-вай не работает, вай-вай не влезает, люди добрые памажите".
Вышеприведнное cранное деление в формате double в STD 9.60PL3 отнимает ~300 байт флэша и ~30 байт ОЗУ, что составляет ~30% от 1024 байт имеющегося, прибавляем 25% проги и вуаля - ~55% занято, ~45% имеем в остатке свободного пространства.
Сэ ля ви!
|
|
|
|
03.02.2012, 15:37
|
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: Деление съедает ROM
Ну вот, пришел Ржевский и всё опошлил...
Сообщение от st__1
|
для PIC16 лучше
|
...это 12-й...
...хотя не сомневаюсь в правоте...
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 12:03.
|
|