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

 
 
> IAR AVR 4.10, HELP!!! Ругается линкер
Sergio66
сообщение Jul 12 2005, 13:13
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 235
Регистрация: 9-02-05
Пользователь №: 2 526



Кто нибудь сталкивался с такой проблемой, вот текст:

__eeprom unsigned int LID_ADC_Tabl[10];

unsigned int Select_LID_Position(unsigned int U)
{
char i;
for (i=0; i<10; i++) if (LID_ADC_Tabl[i] <= U) break;
if (i==0) return 0;
if (abs(U-LID_ADC_Tabl[i]) < abs(U-LID_ADC_Tabl[i-1])) return i;
else return (i-1);
}

Линкер ругается на строке :
if (abs(U-LID_ADC_Tabl[i]) < abs(U-LID_ADC_Tabl[i-1])) return i;

Error[e18]: Range error,
Number out of range. Valid range is -128 (-0x80) to 255 (0xFF).
File: G:\ATMega_8\Climat\LID.c, Line: 31
Source: LDI R19, (LID_ADC_Tabl - 2) >> 8
Where $ = Select_LID_Position + 0x54 [0xE4]
in module "LID" (G:\ATMega_8\Climat\Release\Obj\LID.r90),
offset 0x54 in segment part 11, segment CODE
What: 8 ? ((LID_ADC_Tabl + 0xFFFFFFFE) >> 1 & 0x7FFFFFFF) >> 8 - 1 : (LID_ADC_Tabl + 0xFFFFFFFE) [0xFFFFFF]
Allowed range: 0xFFFFFF01 - 0xFF
Operand: LID_ADC_Tabl [0xffffffff]
in module LID (G:\ATMega_8\Climat\Release\Obj\LID.r90),
Offset 0xfffffffe in segment part 9, segment EEPROM_I

Что это может означать?
Причем, если заменить в порочной строке j=i-1; и далее, в качестве индекса использовать j, то проблема снимается.
В чем может быть дело???
Go to the top of the page
 
+Quote Post



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

 


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


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