roboforum.ru

Технический форум по робототехнике.
Текущее время: 27 ноя 2024, 06:29

Часовой пояс: UTC + 4 часа




Начать новую тему Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 27 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: От автора текут мозги!
СообщениеДобавлено: 28 янв 2009, 09:37 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Vooon писал(а):
Уж сколько раз писалось в интернете что такие переменные нужно обьявлять как volatile...
Да и в документации все есть.

ИМХО разработчики компиляторов совсем уже с ума посходили с оптимизацией. Могли бы тогда просто сделать переменными недоступными в прерываниях и всё, если они не volatile. Или в конце-концов варнинг выводить, что меняем неволатильную переменную в прерывании.

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: От WinAVR текут мозги!
СообщениеДобавлено: 28 янв 2009, 10:13 
Не в сети
Аватара пользователя

Зарегистрирован: 27 янв 2009, 23:39
Сообщения: 26
Откуда: K-Jarve, Estonia
прог. языки: PHP, C.
ФИО: Alex Po
Ув. Vooon , такие советы я тоже могу давать. Но дело в том, что со временем в интернете появляется море мусора, нужную информацию всё труднее и труднее искать. Почему бы не задать такой вопрос на конференции, ведь она для этого и создана.
Даже если бы я искал информацию в интернете, как-бы выглядел поисковый запрос? - "не меняется значение переменной впри вызове прерывания в микроконтроллере Attiny2312 с компилятором WinAVR"
И что вам выдаст поисковик? Илы вы начнёте читать поучительные книги с начала и до конца, когда не имеете понятия о том, какая функция вам нужна........

А avr123.nm.ru огромное спасибо, респект и уважуха, как говорится, именно "функция", которую вы подсказали мне и была нужна. Спасиба за материалы. Теперь этот кусок кода работает правильно!

ЗЫ: кстати прочитал две! книги по программирования на СИ для АВР, но инфы VOLATILE там небыло... Про переменные и константы стандартно пишется, что при инициализации им присваивается тип данных (int) и расположение в памяти (flash). Все примеры, с подобными программами не используют VOLATILE!....


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: От WinAVR текут мозги!
СообщениеДобавлено: 28 янв 2009, 10:32 
Не в сети
Аватара пользователя

Зарегистрирован: 27 ноя 2004, 00:42
Сообщения: 3339
Откуда: совсем Москва
ФИО: Григорий
Ув. Redcat, запросы в поисковик тоже надо уметь составлять - полезное умение. Вот - не сильно напрягаясь и просто удалив "мусор" из Вашего запроса я получил: в яндексе. Почему-то уже вторая ссылка дала верный ответ. Причем по ссылкам даже ходить не надо - ответ виден в куске текста, приводимого поисковиком.
Случайность?
:no:

_________________
злой полицейский


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: От WinAVR текут мозги!
СообщениеДобавлено: 28 янв 2009, 10:35 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
2Digit: Вот не соглашусь с тобой, потому что ты сейчас составляешь запрос зная те особенности, которые приводят к проблеме, а именно - прерывание и глобальная переменная. А он то откуда знает что именно эта комбинация даёт проблему? :)

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: От WinAVR текут мозги!
СообщениеДобавлено: 28 янв 2009, 10:38 
Не в сети
Аватара пользователя

Зарегистрирован: 27 ноя 2004, 00:42
Сообщения: 3339
Откуда: совсем Москва
ФИО: Григорий
Dead, дык вот - в первом посте:
redcat писал(а):
Уже неделю борюсь с WinAVR, много проблем разрешил, но эта -
Не изменяется ГЛОБАЛЬНАЯ ПЕРЕМЕННАЯ в обработчике прерывания!!!!!!
Компилятор WinAVR. МС - Attiny2313

Я ж не выдумывал ничего. :)

Да, он бы правильный ответ за 3 секунды на странице результатов поиска не увидел бы, т.к. не знал, что volatile всему виной. Но просмотрев первые ссылки - возможно даже очень бегло - он бы нашел ответ.
ИМХО, говорить о появляющейся горе мусора в инете некорректно. Любой поисковик - это инструмент. И им надо грамотно пользоваться.
А мусора в инете всегда было много. И те, кто тебе отвечают, тоже ж не из вселенского эфира знания черпают. Зато вот появление таких тем - это размножение того самого "мусора". :)

ЗЫ
Все это ИМХО. :)

_________________
злой полицейский


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: От WinAVR текут мозги!
СообщениеДобавлено: 28 янв 2009, 10:45 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
А ну значит тоже знал, я не прав :) но вот если чуть модифицировать твой запрос, оставив главные слова, тогда ответ улетает из результатов поиска. В общем на то и форум мне кажется, чтобы помогать в сложных ситуациях :)

Добавлено спустя 1 минуту 10 секунд:
А вообще я обычно при таких косяках снимаю копию с программы и начинаю её урезать, пока не остаётся 5-6 строк в которых неведомый мне глюк :)

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: От WinAVR текут мозги!
СообщениеДобавлено: 28 янв 2009, 10:59 
Не в сети
Аватара пользователя

Зарегистрирован: 27 ноя 2004, 00:42
Сообщения: 3339
Откуда: совсем Москва
ФИО: Григорий
Та я и не против вопросов в конференции и тоже считаю, что на то она и есть.
Просто мне не нравится, когда человек ссылается на наличие мусора в инете и поэтому типа найти не может... Гниловаты отмазки, ИМХО :)

К вопросу об оставлении главных слов: поисковый запрос. Оставил только: "глобальная переменная в прерывании WinAVR". Вполне четко и по делу и ничего неизвестного топикстартеру. При этом случайно ткнутая ссылка (оказалась №6) дала следующее:
Цитата:
Победил!
Отвечаю на свой вопрос:
При оптимизации WinAvr выбрасывает из подпрограммы все присвоения (в том числе и глобальным переменным), если эта переменная не читается в данной подпрограмме.
Проблема решается описанием глобальной переменной словом VOLATILE


Повторюсь. Я за обсуждение вопросов в конференции. Но без гнилых отмазок и опломба.

Видимо, пора опять подпись сделать "Я умею искать в Google, а ты?" :D

_________________
злой полицейский


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: От WinAVR текут мозги!
СообщениеДобавлено: 28 янв 2009, 11:11 
Не в сети
Аватара пользователя

Зарегистрирован: 06 окт 2004, 18:01
Сообщения: 24218
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов
Digit писал(а):
Видимо, пора опять подпись сделать "Я умею искать в Google, а ты?" :D

Тогда уж лучше найти курс по поиску в гугл и ссылку на него ставить, а то можно еще писать "я умею программировать на МК, а ты?" :-D

_________________
Проект [[Open Robotics]] - Универсальные модули для построения роботов


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: От WinAVR текут мозги!
СообщениеДобавлено: 28 янв 2009, 11:24 
Не в сети
Аватара пользователя

Зарегистрирован: 27 янв 2009, 23:39
Сообщения: 26
Откуда: K-Jarve, Estonia
прог. языки: PHP, C.
ФИО: Alex Po
Люди! Знаете что такое отчаяние? Когда бьёшься с прогой 16 часов, глаза болят, жрать и спать охота! Хочется и забить на прогу и доделать. Поисковик тут не друг совсем...........


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: От WinAVR текут мозги!
СообщениеДобавлено: 28 янв 2009, 12:06 
Не в сети
отсылающий читать курс
Аватара пользователя

Зарегистрирован: 06 ноя 2005, 04:18
Сообщения: 14195
Откуда: Москва
Dead, вы че-то про "ФЛУДИТЬ НЕ НАДОЕЛО" писали в соседнем топике ?!

redcat писал(а):
avr123.nm.ru огромное спасибо, респект и уважуха, как говорится, именно "функция", которую вы подсказали мне и была нужна. Спасиба за материалы. Теперь этот кусок кода работает правильно!

Я рад что у вас все ОК !

redcat писал(а):
прочитал две! книги по программирования на СИ для АВР, но инфы VOLATILE там небыло...

Я в курсе старался собрать все самое важное для новичка. И в начале курса сильно призываю читать документацию на применяемые инструменты разработки.

redcat писал(а):
прочитал две! книги по программирования на СИ для АВР, но инфы VOLATILE там небыло... Про переменные и константы стандартно пишется, что при инициализации им присваивается тип данных (int) и расположение в памяти (flash).

Переменные не могут быть во флэш (обычно так называется память программ), так как тогда они уже константы - ведь программа не может их изменить.

redcat писал(а):
Все примеры, с подобными программами не используют VOLATILE!...

Надо смотреть листинг Си+АСМ - в нем будет видно что стало с вашим кодом после оптимизации компилятором.

Добавлено спустя 4 минуты 35 секунд:
Вот такой запрос в Яндексе - "переменная в прерывании WinAVR" сразу дает ответ в первом результате

Изображение


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: От WinAVR текут мозги!
СообщениеДобавлено: 28 янв 2009, 12:20 
Не в сети
Аватара пользователя

Зарегистрирован: 27 янв 2009, 23:39
Сообщения: 26
Откуда: K-Jarve, Estonia
прог. языки: PHP, C.
ФИО: Alex Po
Всем спасибо за помощь, вопрос закрыт. :roll:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: От WinAVR текут мозги!
СообщениеДобавлено: 29 янв 2009, 01:07 
Не в сети
Site Admin
Аватара пользователя

Зарегистрирован: 09 фев 2006, 15:36
Сообщения: 3339
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков
Вот вы мне скажите, когда стало правильным не изучать документацию к инструменту, которым вы пользуетесь?
У популярных проектов документация описывает такие моменты, т.к. разработчиков либо уже завалили вопросами, либо на упреждение уже описано.

_________________
Linux user | Firefox user


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 27 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 17


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO