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

 
 
 
Reply to this topicStart new topic
> __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
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
_trunk_
сообщение Sep 21 2011, 08:38
Сообщение #3


Участник
*

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



спасибо, разобрался
Go to the top of the page
 
+Quote Post

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

 


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


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