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

 
 
> ? функция 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
Ответов
Rst7
сообщение Feb 8 2006, 12:32
Сообщение #2


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата(alm_ @ Feb 8 2006, 14:28) *
Необходимо отмерить задержки в миллисекундах с с точностью до 5%. Очевидно, что при использовании С для различных компиляторов может быть различен. Вывод: необходимо использовать inline-функций на Asm. Но вот вопрос одинаковое ли количество тактов выполняются одни и те же команды для различных семейств (Tini,Classic,Mega) ?


__delay_cycles(сколько тактов) в IAR'е решат ваши проблемы wink.gif


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
Halfback
сообщение Jan 17 2009, 20:03
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 322
Регистрация: 28-05-05
Пользователь №: 5 512



Цитата(Rst7 @ Feb 8 2006, 15:32) *
__delay_cycles(сколько тактов) в IAR'е решат ваши проблемы wink.gif

а в CAVR что решит проблемы?
использовал ф-цию delay_ms(10) дык вместо формирования меандра с Ти=10мс почему то Ти=2,5мс, т.е. приблизительно в 4 раза быстрее. Кварц. генератор = 2Мгц, МЦУ = Мега88.
ЧТо посоветуете? Писать новую функцию, запихивать в нее nop-ы путём подбора с осциллографом? Задача выдавать импульсы с погрешностью хотя бы 1мс - и с delay_ms такой облом. При помощи счетчиков не хотелось бы заморачиваться.

Сообщение отредактировал Halfback - Jan 17 2009, 20:05
Go to the top of the page
 
+Quote Post
cebotor
сообщение Jan 17 2009, 21:13
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 135
Регистрация: 6-04-07
Из: Бронницы
Пользователь №: 26 809



Цитата(Halfback @ Jan 17 2009, 23:03) *
а в CAVR что решит проблемы?
использовал ф-цию delay_ms(10) дык вместо формирования меандра с Ти=10мс почему то Ти=2,5мс, т.е. приблизительно в 4 раза быстрее. Кварц. генератор = 2Мгц, МЦУ = Мега88.
ЧТо посоветуете? Писать новую функцию, запихивать в нее nop-ы путём подбора с осциллографом? Задача выдавать импульсы с погрешностью хотя бы 1мс - и с delay_ms такой облом. При помощи счетчиков не хотелось бы заморачиваться.

если delay_ms - это функция компилятора - то скорее всего вы декларируете ему не ту тактовую.
делать задержки в _милисекундах_ без прерываний - это когда "очень хочется странного", ели счетчик это вы про прерывания - то мороки минут на несколько . заставьте таймер щелкать с частотой 2 килогерца внутри декрементируйте счетчик и вуаля - погрешность 1 милисекунда.


--------------------
если еррата пуста - это не хорошо а плохо
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- alm_   ? функция delay() без использования таймеров   Feb 8 2006, 12:28
|- - 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   Цитата(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
- - beer_warrior   Функции на асме, не обязательно инлайн. Расходы на...   Feb 8 2006, 13:47
- - 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 Текстовая версия Сейчас: 19th August 2025 - 16:01
Рейтинг@Mail.ru


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