Форум программистов, компьютерный форум, киберфорум
Наши страницы
Микроконтроллеры Atmega AVR
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.59/29: Рейтинг темы: голосов - 29, средняя оценка - 4.59
otixiypo
0 / 0 / 0
Регистрация: 30.01.2010
Сообщений: 1,031
1

глюки студии

21.11.2010, 01:26. Просмотров 5176. Ответов 11
Метки нет (Все метки)

основной цикл программы (чисто для примера уже пробую)
Код
while(1==1){
DevOn=4;
DevOn=DevOn+1;

PORTA=DevOn;
};
при дебаге студия выкидывает строки DevOn=4; и DevOn=DevOn+1; и лазит зацикливается на PORTA=DevOn;
при этом DevOn в вочере всегда = 0. пипец какойто, или я чтото не понимаю?
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.11.2010, 01:26
Ответы с готовыми решениями:

бинарник из AVR студии
Здравствуйте всем. Вопросик такой возник: нужно соорудить контроль версий прошивок. Из этого...

Помогите с отладкой в студии 4.18/4.19
Привет всему сообществу! Сразу прошу не пинать меня ногами. так как изучать контроллеры начал...

Софтовый i2c в студии (си)
Кодвижн реально глючная хрень, поэтому перешол на студию. Тут начались проблемы с макросами типа...

В студии работает, в железе - нет
Добрый день! Столкнулся с проблемой - никак не могу сравнить принятые данные по uart с чем-либо и,...

Глюк AVR студии или... ?
Скриншот сеанса отладки с JTAG: Скриншот <Изображение удалено> Кому верить ? Окну Registers...

11
//Mt
0 / 0 / 0
Регистрация: 20.06.2010
Сообщений: 456
21.11.2010, 01:30 2
То что 0 это странно.... А так все нормально - должно быть свернуто в

while(1) PORTA=5;

Если DevOn не volatile.
В принципе компилятор мог вообще решить не использовать переменную эту...
0
otixiypo
0 / 0 / 0
Регистрация: 30.01.2010
Сообщений: 1,031
21.11.2010, 01:37 3
да, видимо я туплю. оптимизация срабатывает так... а не подскажите дирректива есть какаято чтоб строку не выкидывал оптимизатор?
0
//Mt
0 / 0 / 0
Регистрация: 20.06.2010
Сообщений: 456
21.11.2010, 01:42 4
Вынести присваивание начального значения из цикла ?
Если, конечно, вы не тестируете что-то именно так.
Отключить нафик оптимизацию вообще любую - не помню точно где там это...
0
21.11.2010, 01:42
Shurup
0 / 0 / 0
Регистрация: 04.05.2009
Сообщений: 37
21.11.2010, 01:46 5
К DevOn добавь volatile

volatile uint8_t DevOn = 4;

while(1==1){
DevOn=DevOn+1;

PORTA=DevOn;
};
0
otixiypo
0 / 0 / 0
Регистрация: 30.01.2010
Сообщений: 1,031
21.11.2010, 01:50 6
Спасибо! Еще был глюк на который благополучно забил, завтра попробую явно проявить его: после вызова прерывания дебагер будто пергружает МК т.е. указатель снова в начало main уходит (хотя до этого в бесконечном цикле был)
0
Shurup
0 / 0 / 0
Регистрация: 04.05.2009
Сообщений: 37
21.11.2010, 01:55 7
Цитата Сообщение от otixiypo
Спасибо! Еще был глюк на который благополучно забил, завтра попробую явно проявить его: после вызова прерывания дебагер будто пергружает МК т.е. указатель снова в начало main уходит (хотя до этого в бесконечном цикле был)
выложи свой кусок программы рассмотрим
0
PRS
0 / 0 / 0
Регистрация: 12.07.2011
Сообщений: 3
21.11.2010, 02:35 8
Тут то же встретил глюк AVR Studyo 4.18 SP3 + WinAVR-20100110
Код
u8 hour1,min1,sec1;
u8 hour2,min2,sec2,data2,month2,year;
hour1=15;hour2=10;
min1=30;,min2=5;
......
Так компилятор почему-то стабильно выбрасывал присваивание hour1 и min1, оставляя присваивание hour2 и min2. Хотя первые переменные дальше изменялись, а со вторыми только сравнивались. Помог только вынос их в глобальные.
0
otixiypo
0 / 0 / 0
Регистрация: 30.01.2010
Сообщений: 1,031
21.11.2010, 14:54 9
Цитата Сообщение от PRS
Тут то же встретил глюк AVR Studyo 4.18 SP3 + WinAVR-20100110
Код:
u8 hour1,min1,sec1;
u8 hour2,min2,sec2,data2,month2,year;
hour1=15;hour2=10;
min1=30;,min2=5;
......

Так компилятор почему-то стабильно выбрасывал присваивание hour1 и min1, оставляя присваивание hour2 и min2. Хотя первые переменные дальше изменялись, а со вторыми только сравнивались. Помог только вынос их в глобальные.

тут тоже видимо оптимизация выкидывает переменную и превращает в значение (т.к. оно не меняется нигде, так зачем же память занимать под это?)
0
otixiypo
0 / 0 / 0
Регистрация: 30.01.2010
Сообщений: 1,031
21.11.2010, 15:01 10
можно выключать оптимизацию в пропертях проекта и он перестанет чудить. у меня еще вопрос из разряда детских но всеже.

unsykned long T;

int main (){
T=1<<25;
}

пишет ворнинг и не пашет ../test1.c:6: warning: left shift count >= width of type - хотя размет Т=32бита, как быть? (я так понял сдвиг работает только не более чем со словом)
0
otixiypo
0 / 0 / 0
Регистрация: 30.01.2010
Сообщений: 1,031
21.11.2010, 15:16 11
тайные мантры оказывается есть - нагуглил :)

T=1UL<<25; - UL означает что единичка тоже длинной 32 бита...
0
Kvomto
0 / 0 / 0
Регистрация: 19.10.2010
Сообщений: 33
13.12.2010, 22:26 12
возникла такая проблема, при старте отладки программы в AVR Studyo не высвечивается желтая стрелка, указыающая на текущую команду, хотя счетчик циклов и всё остальное считается
0
13.12.2010, 22:26
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.12.2010, 22:26

Проект в Студии: Можно ли сделать Save as...
Внизу в спойлере тот текст, которым я начал тему. В результате недолгого обсуждения с уважаемыми...

AVR и buzzer - глюки
ATtiny13a ресет подтянут через 1к на PB4 светодиод к нулю через 470ом. программа - в прерывании...

atmega usbasp глюки
Приветствую. Подскажите, пожалуйста, какие могут быть проблемы с прошивкой МК. MK - ATMiko128....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru