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

 
 
> компилятор, похоже, оптимизирует ф-ю задержки, как заставить отрабатывать без оптимизации?
Метценгерштейн
сообщение Feb 20 2013, 15:33
Сообщение #1


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

Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



Код
void Delay(uint32_t step)
{
for (uint32_t i = 0; i < step; i++);
}

int main() {
  
   for (;;) {
    on (LED_Green);
    Delay(0xFFFF);
    off (LED_Green);
    }
}

передавал число в ф-ю и смотрел отладчиком- все честно, ходит по циклу и вываливается.

Но, вне зависимости от переданного аргумента, задержка на осцилле не меняется.
volatile не помогает.
Компилятор IAR
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Метценгерштейн
сообщение Feb 21 2013, 15:26
Сообщение #2


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

Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079



где корректно поставить volatile тогда?

Сообщение отредактировал Метценгерштейн - Feb 21 2013, 15:26
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Feb 21 2013, 17:08
Сообщение #3


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



У вас правильно написано.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 25th July 2025 - 19:27
Рейтинг@Mail.ru


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