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

 
 
 
Reply to this topicStart new topic
> Задержка в AVR GCC, Почему не правильно работает?
UserM
сообщение Feb 3 2009, 20:29
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 49
Регистрация: 26-02-05
Пользователь №: 2 909



Объясните плз. почему в программе должны выполняться две задержки по 250мс , а в симуляторе avr studio программа выполняется за 62.5мс. смотрите скриншот в приложенном файле.
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
SysRq
сообщение Feb 3 2009, 22:27
Сообщение #2


Чайник, 1 литр
****

Группа: Свой
Сообщений: 655
Регистрация: 17-05-06
Из: Moscow
Пользователь №: 17 168



F_CPU следует ИЛИ:

0) Задать в makefile (что там вообще в вашем проекте?);
1) Определить в исходнике _до_ включения delay.h.
Go to the top of the page
 
+Quote Post
Pyku_He_oTTyda
сообщение Feb 4 2009, 04:35
Сообщение #3


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

Группа: Свой
Сообщений: 1 751
Регистрация: 4-08-05
Из: Великие Луки
Пользователь №: 7 360



Когда запускаете отладку, во меню Debug есть вкладка опций. Там по умолчанию частота симуляции 4МГц, измените на 1Мгц и все должно считать правильно.
З.Ы. - Alt+O
Эскизы прикрепленных изображений
Прикрепленное изображение
 


--------------------
Андрей Смирнов
Go to the top of the page
 
+Quote Post
SysRq
сообщение Feb 4 2009, 16:19
Сообщение #4


Чайник, 1 литр
****

Группа: Свой
Сообщений: 655
Регистрация: 17-05-06
Из: Moscow
Пользователь №: 17 168



Цитата(Pyku_He_oTTyda @ Feb 4 2009, 07:35) *
...измените на 1Мгц и все должно считать правильно.

Выткну себе глаз, пусть у тёщи будет зять кривой biggrin.gif

Надо программу правильно переписать, а не дебаггер настроить так чтобы глюка не было видно.
Go to the top of the page
 
+Quote Post
UserM
сообщение Feb 4 2009, 19:01
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 49
Регистрация: 26-02-05
Пользователь №: 2 909



Цитата(SysRq @ Feb 4 2009, 00:27) *
F_CPU следует ИЛИ:
1) Определить в исходнике _до_ включения delay.h.


Пробовал, не помогает.

В опциях проекта тоже указывал частоту 8000000. Результата не получил.



В общем, вроде разобрался. В файле delay.h есть такая строчка " The maximal possible delay is 262.14 ms / F_CPU in MHz." т.е. 262.14/8 = 32.7675ms Примерно такое время у меня и получается. Странно только , что нет ни какого "варнинга".
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
SysRq
сообщение Feb 4 2009, 19:38
Сообщение #6


Чайник, 1 литр
****

Группа: Свой
Сообщений: 655
Регистрация: 17-05-06
Из: Moscow
Пользователь №: 17 168



Обновите WinAVR. У вас старенькая версия, в ней действительно таковое ограничение есть. В более новых:
Цитата
The maximal possible delay is 262.14 ms / F_CPU in MHz.

When the user request delay which exceed the maximum possible one,
_delay_ms() provides a decreased resolution functionality. In this
mode _delay_ms() will work with a resolution of 1/10 ms, providing
delays up to 6.5535 seconds (independent from CPU frequency). The
user will not be informed about decreased resolution.


Либо циклом, типа for(...) _delay_ms(0.96).

Сообщение отредактировал SysRq - Feb 4 2009, 19:40
Go to the top of the page
 
+Quote Post
UserM
сообщение Feb 4 2009, 21:07
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 49
Регистрация: 26-02-05
Пользователь №: 2 909



ОК, понятно. Спасибо.
Go to the top of the page
 
+Quote Post
Pyku_He_oTTyda
сообщение Feb 5 2009, 15:28
Сообщение #8


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

Группа: Свой
Сообщений: 1 751
Регистрация: 4-08-05
Из: Великие Луки
Пользователь №: 7 360



Цитата(SysRq @ Feb 4 2009, 19:19) *
Выткну себе глаз, пусть у тёщи будет зять кривой biggrin.gif

Надо программу правильно переписать, а не дебаггер настроить так чтобы глюка не было видно.


Сорри, не посмотрел ваш скриншот, там частота указана 8мгц, мне подумалось что вы работаете по дефолту на одном


--------------------
Андрей Смирнов
Go to the top of the page
 
+Quote Post

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

 


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


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