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

 
 
> ? функция delay() без использования таймеров
alm_
сообщение Feb 8 2006, 12:28
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 25
Регистрация: 2-02-06
Пользователь №: 13 904



Необходимо отмерить задержки в миллисекундах с с точностью до 5%. Очевидно, что при использовании С для различных компиляторов может быть различен. Вывод: необходимо использовать inline-функций на Asm. Но вот вопрос одинаковое ли количество тактов выполняются одни и те же команды для различных семейств (Tini,Classic,Mega) ?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
beer_warrior
сообщение Feb 8 2006, 13:47
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 065
Регистрация: 8-10-05
Из: Kiev, UA
Пользователь №: 9 380



Функции на асме, не обязательно инлайн.
Расходы на call/ret известны, количество тактов - одинаково.
Если подходить совсем глобально, вставить препроцессорный макрос высчитывающий количество проходов цикла в зависимости от частоты.
Запретить прерывание внутри.
Но это более пригодно для микросекундных задержек.
Для миллисекундных я например использую 2-й таймер с автоперезагрузкой с циклом в 100мкс, а от него веду софтварные таймеры, в которые вставлены хэндлеры функций. Точность получается весьма пристойная для самых критичных задач.


--------------------
Вони шукають те, чого нема,
Щоб довести, що його не існує.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- alm_   ? функция delay() без использования таймеров   Feb 8 2006, 12:28
- - Rst7   Цитата(alm_ @ Feb 8 2006, 14:28) Необходи...   Feb 8 2006, 12:32
|- - IgorKossak   Цитата(Rst7 @ Feb 8 2006, 14:32) __delay_...   Feb 8 2006, 12:41
||- - Rst7   Цитата(IgorKossak @ Feb 8 2006, 14:41) Rs...   Feb 8 2006, 13:13
|- - Halfback   Цитата(Rst7 @ Feb 8 2006, 15:32) __delay_...   Jan 17 2009, 20:03
|- - cebotor   Цитата(Halfback @ Jan 17 2009, 23:03) а в...   Jan 17 2009, 21:13
||- - Halfback   Цитата(cebotor @ Jan 18 2009, 00:13) если...   Jan 17 2009, 21:20
|- - plombir   Цитата(Halfback @ Jan 17 2009, 23:03) ......   Jan 17 2009, 21:57
- - beer_warrior   Поправочка, далеко не в специфичных, а во всех вет...   Feb 8 2006, 12:47
|- - IgorKossak   Цитата(beer_warrior @ Feb 8 2006, 14:47) ...   Feb 8 2006, 13:00
- - alm_   спасибо за ответ но у меня идет одновременная рабо...   Feb 8 2006, 13:23
- - VslavX   Если есть аппаратный декрементируемый/инкрементиру...   Feb 8 2006, 14:26
- - defunct   Цитата(IgorKossak @ Feb 8 2006, 14:41) Возможны ...   Feb 8 2006, 20:58
- - IgorKossak   Цитата(defunct @ Feb 8 2006, 22:58) Цитат...   Feb 9 2006, 07:26
- - defunct   Цитата(IgorKossak @ Feb 9 2006, 09:26) Ци...   Feb 9 2006, 07:48
- - IgorKossak   Цитата(defunct @ Feb 9 2006, 09:48) ... M...   Feb 9 2006, 09:31
- - defunct   Цитата(IgorKossak @ Feb 9 2006, 11:31) Я ...   Feb 9 2006, 10:47


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

 


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


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