реклама на сайте
подробности

 
 
> Целочисленное деление на PIC18
Denis K
сообщение Dec 8 2007, 11:05
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 28
Регистрация: 8-12-07
Из: Санкт-Петербург
Пользователь №: 33 101



Все пользователям "МелкоМягких" привет!

Надо, как можно быстрее выполнять целочисленное деление 24/16 и 32/16.
Если кто чем может помочь, огромный респект smile.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 5)
evc
сообщение Dec 8 2007, 12:29
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 206
Регистрация: 17-03-07
Из: Москва
Пользователь №: 26 266



Только один из результатов если попробуете погуглить "division PIC18" ... smile.gif


--------------------
УЭР
Go to the top of the page
 
+Quote Post
Denis K
сообщение Dec 8 2007, 14:45
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 28
Регистрация: 8-12-07
Из: Санкт-Петербург
Пользователь №: 33 101



Спасибо за ссылку, пригодиться. beer.gif

Однако не совсем то,что надо. В данной процедуре результат 16 бит, а это маловато, надо чтобы разрядность результата была равна разрядности делимого.
Go to the top of the page
 
+Quote Post
George!
сообщение Dec 10 2007, 02:33
Сообщение #4


Участник
*

Группа: Свой
Сообщений: 28
Регистрация: 19-03-05
Из: Омск
Пользователь №: 3 489



Если можно добавить код на си то наверно лучше сделать примерно так:
Скачать майкрочиповский 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;
Go to the top of the page
 
+Quote Post
Denis K
сообщение Dec 10 2007, 07:48
Сообщение #5


Участник
*

Группа: Новичок
Сообщений: 28
Регистрация: 8-12-07
Из: Санкт-Петербург
Пользователь №: 33 101



Как вариант, да наверно можно попробовать откомпилить Сишный код в асм.
Однако очень сомневаюсь, что по скорости почучиться быстро, хотя надо попробовать.

Нашел процедуру 24/16 для PIC17, переписал под 18 кристалл.
Делит в цикле в среднем за 520-530 циклов.
По скорости это впритык, хотелось бы чуть быстрее.
Go to the top of the page
 
+Quote Post
Baser
сообщение Dec 14 2007, 11:43
Сообщение #6


Просто Che
*****

Группа: Свой
Сообщений: 1 567
Регистрация: 22-05-07
Из: ExUSSR
Пользователь №: 27 881



А чем официальный AN617 Fixed Point Routines не устраивает?
Я когда-то применял, работает smile.gif
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 15:23
Рейтинг@Mail.ru


Страница сгенерированна за 0.0136 секунд с 7
ELECTRONIX ©2004-2016