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

 
 
> проблемы с паузами в IAR
SZ0
сообщение Aug 21 2008, 13:54
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 326
Регистрация: 14-02-06
Пользователь №: 14 331



Применяя паузы в IAR использую файл:

#define Fosc_Hz Fosc
#define Fosc_kHz Fosc/1000
#define Fosc_MHz Fosc_kHz/1000
#define Fosc_GHz Fosc_MHz/1000
#define delay_ns(x) __delay_cycles(x*Fosc_GHz)
#define delay_us(x) __delay_cycles(x*Fosc_MHz)
#define delay_ms(x) __delay_cycles(x*Fosc_kHz)
#define delay_s(x) __delay_cycles(x*Fosc_Hz)

Выставил паузу 500мс - delay_ms(500) при Fosc = 16000000

Пауза отрабатывается неверно, т.к. компилятор выдаёт следующее:
Warning[Pe061]: integer operation result is out of range
Warning[Pe068]: integer conversion resulted in a change of sign

Если сделать __delay_cycles(8000000) то пауза чётко выдерживается.
Почему он не может нормально обработать delay_ms(x) при больших значения? Ведь __delay_cycles unsigned long, и число вроде должно нормально обработаться. Или я чего-то туплю... cranky.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
zltigo
сообщение Aug 21 2008, 14:53
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Moderator:
Я умоляю, сначала пользуемся поиском:
http://electronix.ru/forum/index.php?act=S...=__delay_cycles
Тему закрыл.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post



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

 


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


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