Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 02.12.2006, 23:29  
duritskiy
Временная регистрация
 
Регистрация: 24.09.2006
Сообщений: 54
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
duritskiy на пути к лучшему
По умолчанию Ассемблерная вставка в Си: Деление 24/24 или 24/16 бит (AVR)

Я в асме не силён...

У меня есть формула T=7812500/t , где T и t 16 битные переменные.

Помогите плиз примером чего-то подобного:

int div_24(char Hi,char Mid,char Lo, int t )
{
int Rez;

#asm
...Ассемблерная вставка деления 24 битной переменной на 16 битную.
#endasm

return Rez;
}
Реклама:
duritskiy вне форума  
Непрочитано 03.12.2006, 02:22  
nml
Супер-модератор
 
Аватар для nml
 
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,378
Сказал спасибо: 1,948
Сказали Спасибо 1,327 раз(а) в 578 сообщении(ях)
nml на пути к лучшему
По умолчанию Re: Ассемблерная вставка в Си: Деление 24/24 или 24/16 бит (

Сообщение от duritskiy
Я в асме не силён...
У меня есть формула T=7812500/t , где T и t 16 битные переменные.
Помогите плиз примером чего-то подобного:
int div_24(char Hi,char Mid,char Lo, int t )
{
int Rez;
#asm
...Ассемблерная вставка деления 24 битной переменной на 16 битную.
#endasm
return Rez;
}
Вот если честно, то ни фига не понял. Так вы пишете на Си или на асме? Си функция и ассемблерная вставка? Мсье знает толк в извращениях. Не проще ли поделить long на long средствами Си? Или вы думаете, что написанный вами кусок на асме будет работать значительно быстрее?

Уточните задачу...
nml вне форума  
Непрочитано 03.12.2006, 03:12  
duritskiy
Временная регистрация
 
Регистрация: 24.09.2006
Сообщений: 54
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
duritskiy на пути к лучшему
По умолчанию

в том то и дело что Лонг на Лонг делить не хочется.
А вот 24битное деление будет раза в полтора быстрее.
Если 16 битное делится примерно 45мкс, 32 - примерно 95мкс, то 24 битное наверное около 70мкс.
Для меня даже это будет очень хорошим плюсом.
duritskiy вне форума  
Непрочитано 03.12.2006, 14:54  
nml
Супер-модератор
 
Аватар для nml
 
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,378
Сказал спасибо: 1,948
Сказали Спасибо 1,327 раз(а) в 578 сообщении(ях)
nml на пути к лучшему
По умолчанию

Сообщение от duritskiy
в том то и дело что Лонг на Лонг делить не хочется.
А вот 24битное деление будет раза в полтора быстрее.
Если 16 битное делится примерно 45мкс, 32 - примерно 95мкс, то 24 битное наверное около 70мкс.
Ну в таком случае проще всего взять за основу атмеловскую апноту с делением - и по образцу - сделать свою подпрограмму. Но:
- потеряете прилично времени на написание и отладку,
- ухудшится переносимость и читабельность,
- вполне возможно, что в этом месте оптимизатор компилятора толком работать не будет.

СтОит ли игра свеч? Зачастую бывает - оптимизируешь, изгаляешься, а потом МК крутится где-нить в цикле ожидания, бо делать ему нефиг...

PS Кстати я не поленился посмотреть сколько времени выполняется деление 32 на 32 (компилятор IAR 4.10, код для Mega8535). Подставлял разные данные. Не более 600 тактов - что при 8 МГц будет не более 75 мкс.
nml вне форума  
Непрочитано 03.12.2006, 16:16  
duritskiy
Временная регистрация
 
Регистрация: 24.09.2006
Сообщений: 54
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
duritskiy на пути к лучшему
По умолчанию

да, я тоже пробовал в IAR`е, он действительно шустрее чем CodeVisionAvr.
Наверное придётся окончательный вариант программы компилить под ИАРом.

Всёже не очень както удобно и привычно работать под ИАРом, хотя радует что настроек в нём более чем предостаточно, чтобы подогнать его под себя.
duritskiy вне форума  
Непрочитано 03.12.2006, 18:30  
nml
Супер-модератор
 
Аватар для nml
 
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,378
Сказал спасибо: 1,948
Сказали Спасибо 1,327 раз(а) в 578 сообщении(ях)
nml на пути к лучшему
По умолчанию

Сообщение от duritskiy
да, я тоже пробовал в IAR`е, он действительно шустрее чем CodeVisionAvr.
Не зря он (говорят) порядка 1000$ стоит. Я ассемблер знаю неплохо, и когда смотрю код - упрекнуть почти что не в чем.
nml вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
PIC или AVR? serj_neo Микроконтроллеры, АЦП, память и т.д 2 15.05.2007 23:42
X51 или AVR Andrewg Микроконтроллеры, АЦП, память и т.д 21 04.07.2006 12:23
8051: Деление двойной точности, ассемблер Alx_Jourey Микроконтроллеры, АЦП, память и т.д 3 06.12.2005 13:40
Деление частоты входных импульсов ZVNik Микроконтроллеры, АЦП, память и т.д 2 12.07.2005 13:48
16 бит паралельный на USB-флеш по ON-the-GO или другую флеш mig-25 Микроконтроллеры, АЦП, память и т.д 1 24.03.2005 16:31


Часовой пояс GMT +4, время: 12:19.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot