Перейти к содержанию
    

при отладке с JTAG mega128 AvrStudio не видит часть кода

имеем цикл типа

setstrob();

for(;;)

{

i++;

clrstrob();

if(timeout)

somfunc()

}

переменная timeout меняется в прерывании уарта и она вобщем то меняется, но if и его тело не видится и нет возможности поставить в него брэкпоинт ...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Отключите оптимизацию кода.

Как у вас объявлена переменная timeout ?

Попробуйте ниже по коду чего нибудь присвоить этой переменной

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Отключите оптимизацию кода.

Как у вас объявлена переменная timeout ?

Попробуйте ниже по коду чего нибудь присвоить этой переменной

да,до оптимизации уже додумался, отключил, вроди бы всё исправилось :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

счастье было временным - всё вернулось на круги своя при любой оптимизации :( - при отладке пошаговой через житаг курсор положения программы не доходит до if :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У Вас timeout в прерываниях изменяется?

Тогда добавьте квалификатор volatile:

volatile int timeout;

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Была подобная трабла. Попробуйте вместо for(;;) поставить while(1)

Отладчику for(;;) почемуто не нравится (притом не всегда :cranky: )

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

>>volatile int timeout;

спасибо за напоминание - запамятовал я о такой инструкции :)

>>Отладчику for(;;) почемуто не нравится (притом не всегда )

спасибо, интересный опыт

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

с последнего моего поста тут, проблемы с житагом решились, но не полностью, в итоге решил избавиться от ВСЕХ варнингов предупреждающих о неиспользуемых переменных, благо несколько таких осталось и .. о чудо ... всё заработало предсказуемо и так как написал и нет непонятных перескоков ... шайтан

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Отладчику for(;;) почемуто не нравится (притом не всегда :cranky: )

Чипуха полная. Для организации бесконечного цикла всегда использую for(;;) - с отладчиком никаких вопросов.

Скобочку { ставить с новой строки и по одному оператору на одну строку писать пробовали?..

 

и .. о чудо ... всё заработало предсказуемо и так как написал и нет непонятных перескоков ... шайтан

Никаких чудес, нет warning'ов - значит компилятор подтверждает, что правильно понял ваш текст.

Есть Warning'и - могут быть и непонятки, что вы и наблюдали.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...