Вопрос по IAR WorkBench и AtMega128 Есть строчка кода:
for(i=0;i<8;i++) write_byte(ALL_ROM[cnt_1sec-223][i]); //send ROM code
Объявлены след. образом: unsigned char ALL_ROM[27][8];
Ядро - AtMega128
Выдает след. ошибку:
Linking
Error[e18]: Range error,
Number out of range. Valid range is -128 (-0x80) to 255 (0xFF).
File: C:\Documents and Settings\USPIH\Ìîè äîêóìåíòû\USPIH_HEX\usbtempr128.c, Line: 516
Source: LDI R31, (ALL_ROM - 1784) >> 8
Where $ = Tim1 + 0x70 [0x468]
in module "usbtempr128" (C:\Documents and Settings\USPIH\Ìîè äîêóìåíòû\USPIH_HEX\Release\Obj\
usbtempr128.r90),
offset 0x70 in segment part 116, segment CODE
What: 8 ? ((ALL_ROM + 0xFFFFF908) >> 1 & 0x7FFFFFFF) >> 8 - 1 : (ALL_ROM + 0xFFFFF908) [0xFFFFFA]
Allowed range: 0xFFFFFF01 - 0xFF
Operand: ALL_ROM [0xfffffaf5]
in module usbtempr128 (C:\Documents and Settings\USPIH\Ìîè äîêóìåíòû\USPIH_HEX\Release\Obj\
usbtempr128.r90),
Offset 0xfffff908 in segment part 79, segment NEAR_Z
Подскажите,в чем дело?
С ув.,Сергей
krivenkos@inbox.ru
-
- Странный цикл, i начинается с 0, а условие выполнения i>(больше!?)8 - Chum_A(25.12.2005 20:33, )