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

 
 
> __delay_cycles()
_trunk_
сообщение Sep 21 2011, 08:06
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 26
Регистрация: 21-09-11
Пользователь №: 67 308



Добрый день! Для формирования задержки внутри функции обработки прерывания использую __delay_cycles(d). если d - локальная переменная (область видимости - функция обработки прерывания), то __delay_cycles(d) работает. если d - глобальная переменная или статическая локальная переменная, то компилятор выдает ошибку: аргумент __delay_cycles() должен быть константным выражением. В чем причина?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
KRS
сообщение Sep 21 2011, 08:35
Сообщение #2


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

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(_trunk_ @ Sep 21 2011, 12:06) *
компилятор выдает ошибку: аргумент __delay_cycles() должен быть константным выражением. В чем причина?

в этом и причина, аргументом может быть только константа, т.е. заранее известная величина. с локальной переменной тоже может быть ошибка, просто компилер мог просчитать ее значение.
если нужна именно переменная функцию придется писать самостоятельно на асме, она не такая сложная.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


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

 


RSS Текстовая версия Сейчас: 4th August 2025 - 23:04
Рейтинг@Mail.ru


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