AVR studio в вопросах и ответах
На GCC проканает (с варнингом). А вот на g++ уже нет - будет ошибка.
- Реклама
- Сообщения: 768
- Зарегистрирован: Сб ноя 08, 2008 18:32:36
У меня вообще нет никаких ошибок и предупреждений. Avr studio 5. Тип будет int,спасибо
- Сообщения: 768
- Зарегистрирован: Сб ноя 08, 2008 18:32:36
Подскажите еще такой момент: переменная объявлена как uint8_t standby. В обработке прерывания по нажатии кнопки,она становится 1. А в основном коде если stantby!=0 исполняется программа,типа выключатель. Так вот,иногда при включении питания эта самая stantby становится 1,и код исполняется когда не нужно, ради эксперимента я даже запрещал прерывания результат тот же. Проблему удалось решить, инициализировав переменную нулем. При включении uint8_t stantby =0; Я так и не понял,по каким причинам ее значение при включении было не 0. И может ли содержатся мусор в переменных при включении?
Последний раз редактировалось vovik15 Чт сен 13, 2018 08:21:50, всего редактировалось 1 раз.
В неинициализированных переменных при включении может быт что угодно.
Никакая контра не уйдёт от нас
- Сообщения: 768
- Зарегистрирован: Сб ноя 08, 2008 18:32:36
Так что же получается,все переменные обязательно чем то инициализировать? Мне казалось что должен быть 0 при объявлении переменной
- Реклама
без реального кода однозначно на ваш первый впрос ответить нельзя.
по умолчанию автоматически обнуляются все static переменные и все глобальные переменные. что там у вас наделано - не известно.
по умолчанию автоматически обнуляются все static переменные и все глобальные переменные. что там у вас наделано - не известно.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Сообщения: 522
- Зарегистрирован: Чт янв 21, 2016 15:59:10
[uquote="vovik15",url="/forum/viewtopic.php?p=3455900#p3455900"]Так что же получается,все переменные обязательно чем то инициализировать?[/uquote]
не обязательно
не обязательно
- Сообщения: 768
- Зарегистрирован: Сб ноя 08, 2008 18:32:36
Ну так моя переменная глобальная. Но почему то при включении она была не 0. Нулем она стала только после инициализации. И вообще я с этим gcc уже много граблей пособрал
не верю! © Станиславскийvovik15 писал(а):Нулем она стала только после инициализации. И вообще я с этим gcc уже много граблей пособрал
очень от многих я слышал про грабли в GCC, которые на поверку оказывались отсутствием знаний языка Си.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
[uquote="vovik15",url="/forum/viewtopic.php?p=3455921#p3455921"]Ну так моя переменная глобальная. Но почему то при включении она была не 0. Нулем она стала только после инициализации. И вообще я с этим gcc уже много граблей пособрал[/uquote]
Вы действительно уверены в том, что обнаружили нарушение стандарта C в компиляторе?
Вы действительно уверены в том, что обнаружили нарушение стандарта C в компиляторе?
Код: Выделить всё
If an object that has static storage duration is not initialized explicitly, then:
— if it has pointer type, it is initialized to a null pointer;
— if it has arithmetic type, it is initialized to (positive or unsigned) zero;
— if it is an aggregate, every member is initialized (recursively) according to these rules;
— if it is a union, the first named member is initialized (recursively) according to these rules.- Сообщения: 768
- Зарегистрирован: Сб ноя 08, 2008 18:32:36
For ( unsigned int x=60000; x>0; x--) {} и что вы думаете? Компилятор просто выкинул этот цикл из кода
[uquote="vovik15",url="/forum/viewtopic.php?p=3455933#p3455933"]For ( unsigned int x=60000; x>0; x--) {} и что вы думаете? Компилятор просто выкинул этот цикл из кода[/uquote]
Совершенно логично с его стороны
Пользуйтесь или библиотечными функциями, или, если время задержки нужно очень точное, ассемблерной вставкой.
Совершенно логично с его стороны
Пользуйтесь или библиотечными функциями, или, если время задержки нужно очень точное, ассемблерной вставкой.
- Сообщения: 2567
- Зарегистрирован: Вт май 01, 2018 19:44:47
vovik15, ну хоть бы nop-чик какой в тело цикла вставили, чтобы он хоть что-то "полезное" делал 
nop-чик тоже надо уметь вставить так, чтобы компилятор его не выкинул 
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
for ( volatile unsigned int x=60000; x>0; x--) {}vovik15 писал(а):For ( unsigned int x=60000; x>0; x--) {} и что вы думаете? Компилятор просто выкинул этот цикл из кода
- Сообщения: 3389
- Зарегистрирован: Пн окт 11, 2010 19:00:08
[uquote="vovik15",url="/forum/viewtopic.php?p=3455933#p3455933"]For ( unsigned int x=60000; x>0; x--) {} и что вы думаете? Компилятор просто выкинул этот цикл из кода[/uquote]
Код: Выделить всё
For (volatile unsigned int x=60000; x>0; x--);- Сообщения: 768
- Зарегистрирован: Сб ноя 08, 2008 18:32:36
Ладно, я уже понял что надо было ноп вставить. Посоветуйте пожалуйста что почитать по jtag, хочу освоить этот метод отладки.
- Сообщения: 3389
- Зарегистрирован: Пн окт 11, 2010 19:00:08
JTAG отладчик есть? На Али он около 100$ стоит.
Не все МК поддерживают JTAG. Если не ошибаюсь, только модели от 40 выводов и больше.
Не все МК поддерживают JTAG. Если не ошибаюсь, только модели от 40 выводов и больше.
- Сообщения: 768
- Зарегистрирован: Сб ноя 08, 2008 18:32:36
я заказал на али jtag ice отладчик за 500 рублей, он поддерживает mega16.32.64.128 буду его мучать. Еще вопрос,если локальная переменная не проинициализированна,в ней будет мусор?
даvovik15 писал(а):если локальная переменная не проинициализированна,в ней будет мусор?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!



