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

 
 
> Странная работа оптимизатора MPLAB C32, Вроде бы проще некуда...
Slonic
сообщение Feb 16 2010, 20:38
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 84
Регистрация: 3-10-05
Из: Москва-Троицк
Пользователь №: 9 174



Имеется процессор PIC32MX340, компилятор MPLAB C32 и следующий фрагмент программы:

Код
BYTE flag;

В функции main()

flag = 1;           // заводим переменную и устанавливаем ее в 1
while(flag);        // стоим здесь, пока значение переменной не сбросится в 0
LED1 = 1;         // а потом зажигаем лампочку

Потом в функции по периодическому прерыванию:

flag = 0;           // сбрасываем флаг
LED2 = 1;         // и включаем другую лампочку


При отключенной оптимизации (level 0), все работает правильно. При включенной - программа вечно стоит в цикле while, при том что прерывание вызывается и светодиод LED2 горит! Поставил последнюю версию компилятора (1.10), все то же самое. Как бороться пока не знаю, наверное, придется локально отключать оптимизатор...

Сообщение отредактировал Slonic - Feb 16 2010, 20:44
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 29th June 2025 - 18:51
Рейтинг@Mail.ru


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