Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Целочисленное деление на PIC18
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры > PIC
Denis K
Все пользователям "МелкоМягких" привет!

Надо, как можно быстрее выполнять целочисленное деление 24/16 и 32/16.
Если кто чем может помочь, огромный респект smile.gif
evc
Только один из результатов если попробуете погуглить "division PIC18" ... smile.gif
Denis K
Спасибо за ссылку, пригодиться. beer.gif

Однако не совсем то,что надо. В данной процедуре результат 16 бит, а это маловато, надо чтобы разрядность результата была равна разрядности делимого.
George!
Если можно добавить код на си то наверно лучше сделать примерно так:
Скачать майкрочиповский C18, можно демо версию.

unsigned long dividend32;
unsigned short long dividend24; //unsigned short long объявляет беззнаковую переменную длинной 24 бита
unsigned int divisor16;
unsigned long res32;
unsigned short long res24;

res32 = dividend32/divisor16;
res24 = dividend24/divisor16;
Denis K
Как вариант, да наверно можно попробовать откомпилить Сишный код в асм.
Однако очень сомневаюсь, что по скорости почучиться быстро, хотя надо попробовать.

Нашел процедуру 24/16 для PIC17, переписал под 18 кристалл.
Делит в цикле в среднем за 520-530 циклов.
По скорости это впритык, хотелось бы чуть быстрее.
Baser
А чем официальный AN617 Fixed Point Routines не устраивает?
Я когда-то применял, работает smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.