Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Точки останова в VMLab
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
H0kum
Не могу поставить в основном цикле программы точку останова. Этого зеленого квадратика там просто нет.
Во встроенной справке ничего по этому поводу не нашел.

Можно это как-нибудь побороть?
Александр Куличок
Цитата(H0kum @ Sep 15 2009, 22:23) *
Не могу поставить в основном цикле программы точку останова. Этого зеленого квадратика там просто нет.
Во встроенной справке ничего по этому поводу не нашел.

Можно это как-нибудь побороть?

В результате оптимизации кусок кода внутри while() был просто удален компилятором. Проверьте условие внутри while. Возможно, оно всегда ложно. Или внутри цикла размещен бесполезный кусок кода, который ни на что не влияет.
H0kum
Там идет обработка нажатия кнопок.
VMLab отрабатывает нажатия нормально, глобальные переменные зависящие от этого куска кода меняются.
Александр Куличок
так может выложите кусок кода?
Но смотреть буду уже завтра.
H0kum
поставил оптимизацию 0, точки останова появляются везде. Но при этом hex-файл увеличивается практически в 2 раза
если оптимизация 1, то стоят выборочно непонятно по какому принципу
при остальных вариантах (2,3,s) точек вообще нет
это все относится к основному циклу, в остальных местах проблем нет...

Вот кусок кода:
Код
while (1) {
    if (key(MODE_SEL) == 1) {          
        if (++mode_n > MODES) mode_n = 1;
        display();
    }
     //далее аналогичные проверки нажатия кнопок
}
Александр Куличок
Цитата
поставил оптимизацию 0, точки останова появляются везде. Но при этом hex-файл увеличивается практически в 2 раза
если оптимизация 1, то стоят выборочно непонятно по какому принципу

Слишком мало информации по коду. Покажите процедуру/макрос key(), объявление всех переменных/констант, которые здесь используются. А лучше всего прикрепите к сообщению .с и .h - файлы.
Хотя нет, лучше всего посмотрите ассемблерный листинг (для вариантов 1,2,s) на предмет наличия кода внутри while().
Кстати, отлаживать код удобнее и нагляднее всего с оптимизацией 0, если есть такая возможность.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.