А тогда еще вопросик по IAR 2.28A
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Евгений 23 января 2003 г. 14:02
В ответ на: Вопрос к пользователям IAR C for AVR ver.2.28 отправлено Sgrig 23 января 2003 г. 12:24

Есть процедура:

void Test()
{
char Test[100],f;
for(f=0;f<100;f++) Test[f]=f;
}

Запускаю в дебагере Spy. Смотрю в окне Watch: до 15 индекса заполнение идет, как надо, а дальше всякая чертовщина.
Переношу объявление Test в начало модуля, делая глобальной переменной - все нормально.

Где моя ошибка и чего я не указал? Как сделать этот пример рабочим без объявления переменной глобально?

Почему хочу такой большой массив в функции объявлять? Потому что в пдф по тому, как писать на Си, написано, что все локальные переменные, объявленные внутри процедур, убиваются после окончания их выполнения и не потребляют памяти. А делать ее глобальной - значит лишить контроллер 100 байт памяти. Это, простите, грех.

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru