реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Непонятка с компилятором у WinAVR, глюк или я чтото незнаю..
Tcom
сообщение Mar 3 2007, 11:53
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 360
Регистрация: 3-01-06
Из: Украина Запорожская обл.
Пользователь №: 12 792



Пишу прогу в среде WinAVR использую Notepad.
Всё работало работало, написано уже достадочное количество кода и тут проблема:
Код
int main (void)
{ ....
   ....
     //много чего тут инициализация и тд.
  .....
....

while (1)
{
  SCREEN = 0b101;
}
return(0);
}


Получаю следующий код после компиляции
Код
..................
while(1)
{

SCREEN = 0b101;
    1386:    ff cf           rjmp    .-2      ; 0x1386 <main+0xc0>

почему так ?
Что это глюк?
где присваивание?

У меня настроены прерывания от таймера и там выполняется вся работа,
а в этом цыкле я сделал опрос кнопок.
Странно то что операторы while if компилируются норамально в теле этого бесконечного цыкла.
В других функциях всё нормально.
Go to the top of the page
 
+Quote Post
beer_warrior
сообщение Mar 3 2007, 11:58
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 065
Регистрация: 8-10-05
Из: Kiev, UA
Пользователь №: 9 380



Оптимзация. Какой смысл делать присваивание в цикле?
Ищите его где-то рядом.


--------------------
Вони шукають те, чого нема,
Щоб довести, що його не існує.
Go to the top of the page
 
+Quote Post
singlskv
сообщение Mar 3 2007, 12:06
Сообщение #3


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



объявите SCREEN как volatile переменную
тогда он ее не соптимизирует
Go to the top of the page
 
+Quote Post
Tcom
сообщение Mar 3 2007, 12:10
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 360
Регистрация: 3-01-06
Из: Украина Запорожская обл.
Пользователь №: 12 792



Цитата(beer_warrior @ Mar 3 2007, 12:58) *
Оптимзация. Какой смысл делать присваивание в цикле?
Ищите его где-то рядом.

Это пример в реали там обработка событий нажатия кнопок, а реакция на событие это присваивание.
Спасибо singlskv обьявил как volatile и всё заработало.
Тема закрыта.

Сообщение отредактировал Tcom - Mar 3 2007, 12:11
Go to the top of the page
 
+Quote Post
beer_warrior
сообщение Mar 3 2007, 12:30
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 065
Регистрация: 8-10-05
Из: Kiev, UA
Пользователь №: 9 380



Цитата
Это пример в реали там обработка событий нажатия кнопок, а реакция на событие это присваивание.

А где в коде это видно? Присваивается константа, а не значение порта.


--------------------
Вони шукають те, чого нема,
Щоб довести, що його не існує.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 01:15
Рейтинг@Mail.ru


Страница сгенерированна за 0.01397 секунд с 7
ELECTRONIX ©2004-2016