Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Задержка в AVR GCC
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
UserM
Объясните плз. почему в программе должны выполняться две задержки по 250мс , а в симуляторе avr studio программа выполняется за 62.5мс. смотрите скриншот в приложенном файле.
SysRq
F_CPU следует ИЛИ:

0) Задать в makefile (что там вообще в вашем проекте?);
1) Определить в исходнике _до_ включения delay.h.
Pyku_He_oTTyda
Когда запускаете отладку, во меню Debug есть вкладка опций. Там по умолчанию частота симуляции 4МГц, измените на 1Мгц и все должно считать правильно.
З.Ы. - Alt+O
SysRq
Цитата(Pyku_He_oTTyda @ Feb 4 2009, 07:35) *
...измените на 1Мгц и все должно считать правильно.

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

Надо программу правильно переписать, а не дебаггер настроить так чтобы глюка не было видно.
UserM
Цитата(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 Примерно такое время у меня и получается. Странно только , что нет ни какого "варнинга".
SysRq
Обновите 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).
UserM
ОК, понятно. Спасибо.
Pyku_He_oTTyda
Цитата(SysRq @ Feb 4 2009, 19:19) *
Выткну себе глаз, пусть у тёщи будет зять кривой biggrin.gif

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


Сорри, не посмотрел ваш скриншот, там частота указана 8мгц, мне подумалось что вы работаете по дефолту на одном
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.