Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Микроконтроллеры (MCU) и микропроцессоры (MPU) > (xxx) Illegal argument, type or count, ATMEL AVR


Автор: Alex 27.12.2004, 03:23
(xxx) Illegal argument, type or count
Подобные ошибки возникают при несогласованности операндов в команде.
Если Вы используете контроллер mega128 или любой другой, в котором есть регистры ввода-вывода с адресами более, чем $3F($5F), то для доступа к ним использовать комманды Out, In уже нельзя, т.е. строка:
In   Acc,TWCR;   TWCR=($74)
вызовет ошибку.
Решение проблемы:
LDS  Acc,TWCR;
Кстати, в комманде Out(In) используется адрес, который на $20(количество регистров общего назначения) меньше, чем реальное расположение регистра ввода-вывода в памяти, поэтому при работе с регистрами ввода-вывода как с ячейками памяти нужно не забыть прибавить $20:
Out  SREG,Acc;
Но:
STD  SREG+$20,Acc;
Ошибка исчезла?

>> ДА, cпасибо
>> НЕТ
<< Назад

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)