[an error occurred while processing this directive]
Почему в такой конструкции ИАР фигню творит?!
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
|
Отправлено
eXeC001er 05 апреля 2006 г. 15:09
|
|
|
|
оптимизация выключена. В данном куске кода судя по листингу выданному ИАРом делается тоько проверка условия для IF и все!
void OutputTo7Segment(unsigned int temperature)
{
unsigned char minus = 0, celoe = 0;
unsigned int drobnoe;
unsigned char count = 0;
if((temperature & 0xF000) == 0xF000)
{
temperature--;
temperature = ~temperature;
minus = 1;
}
celoe = (unsigned char)((temperature & 0x07FF) >> 4);
drobnoe = temperature & 0x000F;
drobnoe = drobnoe * 625;
drobnoe = (drobnoe << 9) + (drobnoe << 6) + (drobnoe << 5) + (drobnoe << 4) + 1;
}
Составить ответ
|||
Конференция
|||
Архив
Ответы
- Вы сначала допишите функцию до конца, а потом уж смотрите что и как. — _Bill (05.04.2006 15:27 193.233.83.90, 64 байт)
- Еще вопрос, в меге8 есть умножитель аппаратный, значит не имеет смысла хитрить сдвигами и сложениями, ИАР сделат как надо?! — eXeC001er (05.04.2006 15:26 84.19.181.92, пустое)
- Расколбас какой-то.. Однозначно, IAR не вынес унижения. — blackbit (05.04.2006 15:22 217.23.74.110, пустое)
- Функция представляет из себя бессмысленные манипуляции с локальными переменными. Поэтому IAR справедливо рассуждает, что раз никуда результат выводить/сохранять их не нужно, то и обрабатывать смысла тоже нет :) — rezident (05.04.2006 15:21 195.222.149.11, пустое)
- это вся функция? и какой ее смысел? — ы (05.04.2006 15:16 80.92.98.211, пустое)
Перейти к списку ответов
|||
Конференция
|||
Архив
|||
Главная страница
|||
Содержание
E-mail:
info@telesys.ru