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

 
 
 
Closed TopicStart new topic
> проблемы с паузами в 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
GDI
сообщение Aug 21 2008, 14:03
Сообщение #2


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

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



Надо все ваши формулы в скобочки заключить, вот так
Код
#define Fosc_kHz (Fosc/1000)

И еще, чему у вас будет равно
Код
#define Fosc_GHz Fosc_MHz/1000
, когда вы 3 раза поделите 16млн на 1000?


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
SZ0
сообщение Aug 21 2008, 14:17
Сообщение #3


Местный
***

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



Цитата(GDI @ Aug 21 2008, 20:03) *
Надо все ваши формулы в скобочки заключить

Спасибо, а про скобки я и не подумал... 07.gif

Цитата(GDI @ Aug 21 2008, 20:03) *
И еще, чему у вас будет равно
Код
#define Fosc_GHz Fosc_MHz/1000
, когда вы 3 раза поделите 16млн на 1000?


0,016 lol.gif
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 21 2008, 14:53
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 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 Текстовая версия Сейчас: 20th July 2025 - 00:01
Рейтинг@Mail.ru


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