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

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

Отправлено Ralex 18 февраля 2005 г. 08:50

Новые глюки IARа! Нелицензионный 2.28, для AVR.
Пишу:


while(1)
{
if (PIND&(1< else {PORTC&=~(1< }

смотрю листинг


13 while(1)
14 {
15 if (PIND&(1< \ ??main_1:
\ 00000006 9AA8 SBI 0x15,0x00
\ ??main_0:
\ 00000008 9983 SBIC 0x10,0x0
\ 0000000A CFFD RJMP ??main_1
16 else {PORTC&=~(1< \ 0000000C 98A8 CBI 0x15,0x00
\ 0000000E CFFC RJMP ??main_0
17 }

Если внимательно посмотреть, то окажется, что вместо проверки PD3 анализируется PD0. Причём - через некоторое время, когда я уже устал пытаться донести до него, что нужно сделать, и на 10 раз переписал это короткое выражение, вернувшись к его первоначальному виду - оно вдруг компильнулось правильно и выдало в нужном месте нужное значение:


SBIC 0x10,0x03

100%, что я не запарился и в исходнике на Си не ошибался.
Я был в ШОКЕ. Это была программка типа проверки состояний и вывода на светодиод, а если бы это был реальный проект на 500 строк??? Никогда бы я скорее всего ошибку не обнаружил.

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

Ответы


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

Имя (обязательно): 
Пароль: 
E-mail: 

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

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

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


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru