[an error occurred while processing this directive]
Нормально... может от компилятора зависит
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено prosto_Alex 13 декабря 2005 г. 16:40
В ответ на: А у Вас как получается? отправлено <font color=gray>Bill</font> 13 декабря 2005 г. 16:20


У меня ИАР 3.2d
Вообще я очень осторожно отношусь ко С компилятору для авра, и на всякий случай просматриваю что он там генерит, а на визуал с++ под винду никогда проблем с изменениями из разных потоков не было, хотя именно с прерываниями там не работал.
Имею такой вариант
1.
extern char IntFlags;
......
// 99 while(!(IntFlags&0x01));
??main_0:
LDI R30,LOW(IntFlags)
LDI R31,(IntFlags) >> 8
LD R16,Z
SBRS R16,0
RJMP ??main_0
2.
extern char IntFlag;
......
// 99 while(IntFlag);
??main_0:
LDS R16,IntFlag
TST R16
BRNE ??main_0
Специально щас перепробовал разные варианты оптимизации, результат аналогичен, странно что для 1-го вариант не использует lds, не могу поянть почему


Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 
NoIX ключ Запомнить

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Rambler's Top100 Рейтинг@Mail.ru
Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание

E-mail: info@telesys.ru