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

 
 
> Программные задержки в IAR
artemm
сообщение Dec 27 2008, 10:11
Сообщение #1


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

Группа: Свой
Сообщений: 80
Регистрация: 23-07-07
Из: Украина, г. Сумы
Пользователь №: 29 306



Пользуюсь Embedded Workbench 4.0 AVR.
Для реализации программных задержек использую библиотеку, скачанную здесь
delay.h
Цитата
#include <intrinsics.h>
#define f_cpu (1000000) //Частота задающего генератора(ГЦ)

#define delay_us(temp) (__delay_cycles((temp * f_cpu) / 1000000));
#define delay_ms(temp) (__delay_cycles((temp * f_cpu) / 1000));
#define delay_s(temp) (__delay_cycles(temp * f_cpu));


Проблема в том, что задержки получаются точными только с кварцем в 16МГц. С другими кварцами что-попало выходит.
В чём может быть проблема???
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
MrYuran
сообщение Dec 27 2008, 16:00
Сообщение #2


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(artemm @ Dec 27 2008, 13:11) *
Проблема в том, что задержки получаются точными только с кварцем в 16МГц. С другими кварцами что-попало выходит.
В чём может быть проблема???

Программные задержки по определению не могут быть точными. Любое прерывание может изменить длительность задержки произвольным образом. Для единиц и десятков мкс может быть приемлемо, для сотен и миллисекунд лучше использовать таймер. Про секундные речи не идёт - однозначно таймер.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post



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

 


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


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