[an error occurred while processing this directive]
|
Вообщем есть переменная, допустим __eeprom unsigned char temp=100;
Где то в проге я начинаю читать эту переменную, допустим так
PORTC=temp; IAR использует свою функцию извлечения переменной temp из eeproma и генерит следующий код:
OUT 0x1E,R20
OUT 0x1F,R21
SBI 0x1C,0
где соответственно в регистрах r20 и r21 находится адрес переменной temp. Но допустим после выполнения комнады OUT 0x1E,R20, возникает прерывание в котором тоже происходит чтение eeproma и соответственно изменяются регистры адреса (0x1E,0x1F). И когда прога вернётся из прерывания и закончит начатую функцию - она прочитает уже не переменную temp. Я прав или это бред?
E-mail: info@telesys.ru