Разработка, производство и продажа радиоэлектронной аппаратуры
|
Карта сайта
|
Пишите нам
|
В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:
jobsmp@pochta.ru
Телесистемы
|
Электроника
|
Конференция «Микроконтроллеры и их применение»
Ответ:
Отправлено
indepth
29 апреля 2008 г. 02:02
В ответ на:
Дык в качестве аргумента "delay_us()" и переменную можно юзать. Или 16 бит не устраивает?
отправлено Гудвин 29 апреля 2008 г. 02:00
нет ругается
must be constant expression грит
и для char и для int
Составить ответ
|
Вернуться на конференцию
Ответы
Пардон, пробовал delay_ms()... В случае us действительно только константа. Оно и понятно... Ваша подпрограмма будет вносить дополнительные задержки. Если уж нужны точные микросекундные интервалы, лучше задействовать таймер. Иначе придется опытным путем подбирать...
—
Гудвин
(29.04.2008 02:13:24
89.232.124.29
,
пустое
)
ну таймер юзай... а так вообще нормальное решение, delay_us макрос походу, раз ругается на const expression
—
DASM
(29.04.2008 02:06:18
212.58.208.91, 212.58.192.14
,
пустое
)
Да. В зависимости от величины задержки компилятор пересчитывает в свое, зависящее от тактовой, и подставляет нужный макроc:
—
Гудвин
(29.04.2008 02:19:53
89.232.124.29
, 302 байт)
Скорее всего эта самая delay_us(1) в N-ное кол-во NOPов компилируется. Поэтому и требуется константа, что для переменной весьма точно такую задержку сформировать тяжело.
—
rezident
(29.04.2008 02:06:8
77.43.219.195
,
пустое
)
В IAR в NOP-ы она компилируется только для малых задержек. Иначе - цикл.
—
Леонид Иванович
(29.04.2008 02:41:34
87.252.227.57
,
пустое
)
Я не утверждал, а лишь предположил. 1мкс на 4 МГц это всего 4 такта. Цикл тут не получится.
—
rezident
(29.04.2008 02:44:29
77.43.219.195
,
пустое
)
Вот что генерится:
—
Леонид Иванович
(29.04.2008 02:52:29
87.252.227.57
, 316 байт)
а какая библиотека должна быть в ключена в IAR ?
—
Labib
(29.04.2008 10:40:45
85.140.168.239
,
пустое
)
Да мне-то понятно. Главное чтобы вопрошающий понял отчего там константа требуется, а не переменная.
—
rezident
(29.04.2008 02:56:4
77.43.219.195
,
пустое
)
А это довольно интересное упражнение, сделать задержку в циклах, задаваемую переменной. Вот один из примеров:
—
Леонид Иванович
(29.04.2008 03:08:23
87.252.227.57
, 368 байт)
почему ? dec brne - 3 такта.
—
DASM
(29.04.2008 02:50:36
212.58.208.91, 212.58.192.14
,
пустое
)
Дык все равно одним NOP-ом дополнить нужно :)
—
rezident
(29.04.2008 02:55:8
77.43.219.195
,
пустое
)
Отправка ответа
Имя*:
Пароль:
E-mail:
Тема*:
Сообщение:
Ссылка на URL:
URL изображения:
если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
увеличьте 2 вдвое:
Перейти к списку ответов
|
Конференция
|
Раздел "Электроника"
|
Главная страница
|
Карта сайта
Web
telesys.ru