Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: sqrt() и прерывания
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > IAR
pvp
Уважаемые формучане!
Помогите разрешить проблемку:
мк - ATMEGA8.
При разрешённых прерываниях (например, по завершении цикла преобразования АЦП) и использовании библиотечной функции sqrt() (естественно, не в обработчике прерывания) мк перезагружается.
При запрещении прерываний на время выполнения функции sqrt() всё работает как ожидается.

В чём дело и как побороть (не запрещая прерывания на время выполнения sqrt())?
Заранее спасибо.
P.S. Версия компилятора 4.20A
P.P.S. В версии 4.30A - всё аналогично.
pvp
Поборол увеличением размера стека данных до 64 байт (супротив 32 по-умолчанию).
Сергей Борщ
Цитата(pvp @ Oct 10 2007, 15:13) *
При разрешённых прерываниях (например, по завершении цикла преобразования АЦП) и использовании библиотечной функции sqrt() (естественно, не в обработчике прерывания) мк перезагружается.
Весьма вероятно, что не хватает стека. Увеличьте размеры RSTACK и CSTACK.
Цитата(pvp @ Oct 10 2007, 19:03) *
Поборол увеличением размера стека данных до 64 байт (супротив 32 по-умолчанию).
"говорят, у дураков мысли сходятся. Но у умных - чаще!" smile.gif
pvp
Цитата(Сергей Борщ @ Oct 10 2007, 20:03) *
Весьма вероятно, что не хватает стека. Увеличьте размеры RSTACK и CSTACK.

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